控制器与梅勒的关系

时间:2016-03-06 00:08:47

标签: ruby-on-rails

邮件程序如何访问控制器的实例变量?

例如,邮件如何从@user访问users_controller

users_controller是否需要为mailer调用mailer来提供对控制器变量的访问权限?

我对mailerscontrollers的关系非常困惑,即

1)控制器如何访问/呼叫邮件程序 2)邮件程序如何访问控制器实例变量。

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致电梅勒"