2016-08-12 2 views
0

ich diese Anleitung gefolgt https://rubyonrailshelp.wordpress.com/2014/01/08/rails-4-simple-form-and-mail-form-to-make-contact-form/Rails - Mail_form, wie man automatisch „von“ Feld gesetzt E-Mail an current_user

In dem Kontakt-Formular, füllt der Benutzer ein Feld für ihre Namen und E-Mail zusammen mit der Nachricht.

class ContactForm < MailForm::Base 

    attribute :name,  :validate => true 
    attribute :email,  :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i 
    attribute :message 
    attribute :nickname, :captcha => true 

    # Declare the e-mail headers. It accepts anything the mail method 
    # in ActionMailer accepts. 
    def headers 
    { 
     :subject => "My Contact Form", 
     :to => "[email protected]", 
     :from => %("#{name}" <#{email}>) 
    } 
    end 
end 

Ich möchte aus dem user.email Attribut automatisch senden und nicht der Benutzer ein Feld ausfüllen haben. Ist das möglich?

Antwort

1

Trh dies:

In Ihrem, app/views/contacts/new.html.erb machen email field als hidden field und verwenden current_user.email als value von hidden email field funktionieren sollte.

Anmerkung: Ich gehe davon aus Sie Devise gem

+0

Ich verwende Devise verwenden, aber ich erhalte diese Meldung 'undefiniert lokale Variable oder Methode' current_user‘für Contact: CLASS' – user4584963

+1

Ja, mein Fehler. Wir können die Methode "current_user" im Modell nicht verwenden. Stattdessen, in "app/views/contacts/new.html.erb" E-Mail-Feld als verstecktes Feld und verwenden Sie current_user.email als Wert der versteckten E-Mail-Feld sollte funktionieren. –

Verwandte Themen