如何在Ruby on Rails中使用带有邮件程序的实例变量?

时间:2010-01-23 06:05:26

标签: ruby-on-rails actionmailer instance-variables

我在邮件程序的模型中创建了一个实例变量(@user),并希望在视图中访问它?但它给了我一个错误(@user = nil)。将变量传递给视图(电子邮件正文)的最佳方法是什么?

谢谢,Chirag

3 个答案:

答案 0 :(得分:7)

如果要访问邮件程序模板中的实例变量,请在邮件程序模型中添加

@body[:user] = user_object

以上将创建一个可在您的视图中访问的实例变量@user。您应该能够通过

访问邮件程序视图中的用户对象
@user

如果您使用多种格式(text / html),文档here会提供替代方法的示例。

答案 1 :(得分:4)

I Rails 3过程类似:

@user = user_object

以上将创建一个可在您的视图中访问的实例变量@user。您应该能够通过

访问邮件程序视图中的用户对象
@user

请注意,您需要在

之前设置此变量
mail(:from => "info@domain.info", :to => recipient, :subject => "Subject")

答案 2 :(得分:2)

要将变量传递给视图/电子邮件正文,您可以通过正文方法发送它们:-) So, for examplebody :account => recipient将导致带有值的实例变量@account在视图中可以访问recipient