我正在尝试对 ActionMailer (Rails 3.1.1) 中的不同模板进行条件渲染。我希望大多数用户都能正常使用welcome.html.erb
模板,但有些用户得到特殊welcome_photographer.html.erb
模板。这种类型的事情在 ActionController 中起作用:
# (in /app/mailers/user_mailer.rb)
def welcome(user)
@user = user
mail(:to => "#{@user.name} <#{@user.email}>", :subject => "Welcome to ...")
render "welcome_photographer" if @user.is_photographer
end
但渲染不起作用——每个人都得到标准welcome.html.erb
即使@user.is_photographer == true
拨打电话后您不应该尝试做任何事情mail()
。但是,要选择其他模板,您应该通过:template_name
作为一个选项。例如:
template = @user.is_photographer ? "welcome_photographer" : "welcome"
mail(:to => "#{@user.name} <#{@user.email}>",
:subject => "Welcome to ...",
:template_name => template)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)