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

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

谢谢,奇拉格

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

@body[:user] = user_object 

以上将创建一个可在您的视图中访问的实例变量@user。 您应该可以通过执行操作来访问邮件程序视图中的用户对象

 @user 

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

I Rails 3的过程类似:

 @user = user_object 

以上将创建一个可在您的视图中访问的实例变量@user。 您应该可以通过执行操作来访问邮件程序视图中的用户对象

 @user 

请注意,您需要在之前设置此变量

 mail(:from => "info@domain.info", :to => recipient, :subject => "Subject") 

要将变量传递给视图/电子邮件正文,您可以通过正文方法发送它们:-) 因此,例如 , body :account => recipient将导致实例变量@account ,其中可以访问recipient的值视图。