我试图从ActionMailer(Rails 3.1.1)做一个不同模板的条件渲染。我希望大多数用户能够获得正常的welcome.html.erb
模板,但有些用户可以获得特殊的welcome_photographer.html.erb
模板。这种类型的东西工程的ActionController:为ActionMailer渲染不同的视图(模板)
# (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
完美 - 感谢 – brittohalloran
我知道这是现在的一个旧的答案,但我今天发现了它。应该':template_name => template'而不是':template_name =>“template”'?我尝试了你的方式,最后去看它显示为一个字符串的文档。 – Tass
'template'是在第一行设置为字符串的变量。根据用户是否是摄影师,“模板”可以是“welcome_photographer”或“welcome”。 –