邮件程序如何访问控制器的实例变量?
例如,邮件如何从@user
访问users_controller
?
users_controller
是否需要为mailer
调用mailer
来提供对控制器变量的访问权限?
我对mailers
与controllers
的关系非常困惑,即
1)控制器如何访问/呼叫邮件程序 2)邮件程序如何访问控制器实例变量。
答案 0 :(得分:1)
邮件程序只是一个继承自ActionMailer的类,就像从ApplicationController继承的控制器一样。从控制器,您调用相应的邮件程序并将其传递给邮件程序发送邮件所需的变量。有关我使用的示例和更多信息,请参阅this documentation。
邮件程序如何访问a的实例变量 控制器?
传入变量。在以下控制器示例中,@ user变量传入:
UserMailer.welcome_email(@user).deliver_later
users_controller是否需要为邮件程序调用邮件程序 是否可以访问控制器变量?
是
答案 1 :(得分:0)
Mailer不应该访问控制器,他们甚至不应该知道控制器存在。
控制器只需将所需对象作为参数。
您可以在官方指南Action Mailer Basics中看到这一点," 2.1.4致电梅勒"