2016-08-12 3 views
0

Я после этого руководства https://rubyonrailshelp.wordpress.com/2014/01/08/rails-4-simple-form-and-mail-form-to-make-contact-form/Rails - Mail_form как автоматически устанавливается «от» полей current_user электронной почты

В контактной форме, пользователь заполняет поле для их имени и адреса электронной почты вместе с сообщением.

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 

Я хочу, чтобы автоматически отправлять из атрибута user.email и не пользователь заполнить поле. Это возможно?

ответ

1

Trh это:

В вашей, app/views/contacts/new.html.erb сделать email field в hidden field и использовать current_user.email в качестве value из hidden email field должен работать.

Примечание: Я предполагаю, что вы используете Devise камень

+0

Я использую Завещание, но я получаю это сообщение 'неопределенными локальная переменная или метод' current_user»для ContactForm: Class' – user4584963

+1

Да, моя ошибка. Мы не можем использовать метод current_user в модели. Вместо этого в «app/views/contacts/new.html.erb» введите поле электронной почты как скрытое поле и используйте current_user.email, поскольку значение поля скрытой электронной почты должно работать. –

Смежные вопросы