有没有办法告诉邮件程序(例如:class Notifier < ActionMailer::Base
)为不同的方法(邮件)使用不同的布局?
我想发送两种邮件,mail_type_1
和mail_type_2
。每种类型都有自己的布局,但有多个邮件使用这些布局中的每一个,并且每个邮件都有自己的视图。
我想像控制器那样管理它,我可以告诉Rails为不同的操作使用不同的布局,但为每个操作保持分离的视图。这样我就有了:
app/views/layouts/notifier
| -> mail_layout_1.html.erb
| -> mail_layout_2.html.erb
里面会有'yield'调用,而
app/views/notifier
| -> mail1.html.erb
| -> mail2.html.erb
| -> mail3.html.erb
| -> mail4.html.erb
这会使那些yield
占位符填充content_for
个调用。因此,例如,mail1.html.erb
和mail2.html.erb
将使用mail_layout_1.html.erb
和mail3.html.erb
呈现,mail4.html.erb
将使用mail_layout_2.html.erb
呈现。
有没有简单的方法来实现这一目标?到目前为止我找到的唯一解决方案是使用不同的邮件程序类