2016-04-30 1 views
1

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

Предыдущий вопрос Contact Form for User Profile

Я изо всех сил мышления способ выполнения этой функции.

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

Моя цель состоит в том, чтобы иметь общую контактную форму, в которой я могу связать кнопку контакта в отдельном профиле пользователя. Эта форма контакта при отправке будет отправлена ​​в адрес электронной почты пользователя, указанный в атрибуте профиля. Так, например, профиль имеет поле t.string contactform_email.

В настоящее время у меня есть контактная модель, в которой она может быть отправлена ​​на одно индивидуальное письмо. В основном владелец приложения.

class ContactMailer < ApplicationMailer 

     default :to => "[email protected]" 

     def contact_me(msg) 
     @msg = msg 

     mail from: @msg.email, subject: @msg.subject, body: @msg.content 
    end 
    end 

Моя цель состоит в том, чтобы просто связать

default :to => "[email protected]" 

к чему-то вроде

 default :to => "@profile.contactform_email" 

Пользователь представил ответ на связанный вопрос, но я не могу показаться, чтобы осуществить это точно ,

Любая помощь будет чрезвычайно полезна.

ответ

0

Если вы хотите отправлять разные приемники и не иметь адрес по умолчанию to, то не используйте его. Просто укажите опцию to: в методе mail:

# Remove this line 
default :to => "[email protected]" 

# Update your `mail` method 
mail to: @msg.contactform_email, from: @msg.email, subject: @msg.subject, body: @msg.content 

Убедитесь, что @msg имеет contactform_email поле или передать @profile экземпляр to поля к вашей почтовой программе:

class ContactMailer < ApplicationMailer 

    # default :to => "[email protected]" 

    def contact_me(msg, profile) 
    @msg = msg 
    mail to: profile.contactform_email, from: @msg.email, subject: @msg.subject, body: @msg.content 
    end 
end 

ContactMailer.contact_me(@msg, @profile).deliver_now 
Смежные вопросы