Mailer使用与___控制器相同的控制器代码

时间:2012-09-11 18:01:30

标签: ruby-on-rails mailer

所以我想邮寄一份报告,该报告包含由控制器定期定义的类变量。但是在邮件中我必须再次定义它们?有没有办法不重复这个?我已经考虑过将它更多地转移到模型中,但最后它仍然是相同数量的定义。

1 个答案:

答案 0 :(得分:0)

您不必再次定义它们,您可以将它们从控制器作为参数传递给邮件程序方法。

假设您的邮件中需要@ ivar1,@ ivar2和@ ivar3,您只需从控制器运行:

MyMailer.some_email(@ivar1, @ivar2, @ivar3).deliver

编辑:

再看看你的问题(以及我的回答),我想我可能首先误解了它。

在我的解决方案中,您仍然需要重新定义实例变量。这些值已正确传递,但您仍需要:

def some_email(v1, v2, v3)
  @ivar1 = v1
  @ivar2 = v2
  @ivar3 = v3
end

无法使用控制器中定义的相同实例变量。