Как вы используете переменную экземпляра с почтовой программой в Ruby on Rails? - PullRequest
3 голосов
/ 23 января 2010

Я создал переменную экземпляра (@user) в модели почтовой программы и хочу получить к ней доступ в представлении? Но это дает мне ошибку (@user = nil). Как лучше всего передать переменную для просмотра (тело письма)?

Спасибо, Чираг

Ответы [ 3 ]

7 голосов
/ 23 января 2010

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

@body[:user] = user_object

Приведенное выше создаст переменную экземпляра @user, к которой можно получить доступ в вашем представлении. Вы должны иметь возможность доступа к объекту пользователя в представлении почтовой программы, выполнив

@user

Документы здесь содержат примеры альтернативных способов, если вы используете несколько форматов (текст / html).

4 голосов
/ 05 декабря 2012

У меня в Rails 3 процесс похож:

@user = user_object

Приведенное выше создаст переменную экземпляра @user, к которой можно получить доступ в вашем представлении. Вы должны иметь возможность доступа к объекту пользователя в представлении почтовой программы, выполнив

@user

Обратите внимание, что вам нужно установить эту переменную до

mail(:from => "info@domain.info", :to => recipient, :subject => "Subject")
2 голосов
/ 23 января 2010

Чтобы передать переменную в тело представления / сообщения электронной почты, вы отправляете их через метод body :-) Так, например, , body :account => recipient приведет к переменной экземпляра @account с значение recipient доступно в представлении.

...