2016-04-18 2 views
0

Я изо всех сил пытался думать о способе выполнения этой функции.Контактный формуляр для профиля пользователя

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

Моя цель состоит в том, чтобы иметь общую контактную форму, в которой я могу связать кнопку контакта в отдельном профиле пользователя. Эта форма контакта при отправке будет отправлена ​​в адрес электронной почты пользователя, указанный в атрибуте профиля. Так, например, в профиле есть поле t.string contact_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.contact_email" 

Я понятия не имею, как указать пользователя для формы или, если его возможно. Этот процесс должен был бы включать, когда посетитель обращается к нам, и форма принимает электронную почту профиля и использует ее в качестве получателя.

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

ответ

0

Примечание: не попадайте в эту вещь, которую вы должны указать по умолчанию to. Вы можете просто отправить to в mail метод, как вы отправляете from, subject и другие переменные.

Есть несколько способов сделать это:

1) Вы можете использовать hidden_field_tag, чтобы пройти по электронной почте этого пользователя как следующий

<%= hidden_field_tag :contact_email, @user.contact_email %> 

а затем на стороне сервера, вы можете иметь его значение через parmas[:contact_email].

2) Вы можете отправить электронное письмо пользователю, если вы можете позвонить contact_me. Прямо сейчас вы отправляете только один параметр msg. Так,

def contact_me(msg, to) 
    @msg = msg 

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

И когда вы звоните contact_me, вы можете сделать: ContactMailer.contact_me(msg, @user.contact_email), хотя это может быть различным в зависимости от фактической реализации в вашем коде, но концепция всегда будет то же самое.

+0

Спасибо за ваш быстрый ответ. Я немного растерялся в вашем ответе, поэтому в основном ваше высказывание добавило параметры {: contact_email} в контроллер таблицы без учета? Я вижу, что вы говорите, но я смущен тем, как вы реализуете любой шанс. Как вы можете дать еще один небольшой быстрый пример? – leafshinobi25

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