所以我有两个邮件操作的布局:signup_email
和change_password
def signup_email(user, url)
@user = user
@url = url
mail(to:user.username, subject:"Welcome to Clubicity!", template_path: "mail_templates", template_name: "system")
end
def change_password(username,url)
@url = url
mail(to:username,subject:"Clubicity - password recovery", template_path: "mail_templates", template_name: "system")
end
我设法为这两个动作获得了一个布局,但现在在这个布局中我需要渲染2个不同的部分,具体取决于调用的动作,注册或更改_pwd ..
我查看了RailsGuides和api.rubyonrails.org,他们只说模板。
请为此提供帮助。
答案 0 :(得分:1)
使用像这样的邮件布局
def change_password(username,url)
@url = url
mail(to:username,subject:"Clubicity - password recovery") do |format|
format.html { render :layout => 'mail_templates/system'}
end
end
def signup_email(user, url)
@user = user
@url = url
mail(to:user.username, subject:"Welcome to Clubicity!") do |format|
format.html { render :layout => 'mail_templates/system'}
end
end
并在布局中放入<%= yield%>
and rock'n'roll!
答案 1 :(得分:0)
因此,您希望将一个文件用于不同的操作。当然,您必须在模板中定义操作。
我建议为每个动作制作一个视图文件。
要使用一个布局,只需在顶部添加<%= render 'email_header' %>
,在每个视图的底部添加<%= render 'email_footer' %>
即可。同时使用适当的标记_email_header.html.erb
和_email_footer.html.erb
。