Próbuję wykonać warunkowe renderowanie innego szablonu z ActionMailer (Rails 3.1.1). Chcę, aby większość użytkowników otrzymywała zwykły szablon welcome.html.erb
, ale niektórzy użytkownicy otrzymali specjalny szablon welcome_photographer.html.erb
. Tego typu rzeczy działa w ActionController:Renderuj inny widok (szablon) dla 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
Ale tynku nie działa - każdy dostaje średnia welcome.html.erb
nawet jeśli @user.is_photographer == true
idealny - dzięki – brittohalloran
Wiem, że to już stara odpowiedź, ale znalazłem ją dzisiaj. Czy zamiast tego ': template_name => template' powinien być': template_name => "template" '? Wypróbowałem to po swojemu i skończyłem na dokumentach, które pokazują go jako ciąg. – Tass
'template' jest zmienną ustawioną na łańcuch w pierwszym wierszu. Na podstawie tego, czy użytkownik jest fotografem, czy nie, 'template' to' "welcome_photographer" 'lub' "welcome" '. –