Tôi đang cố gắng thực hiện kết xuất có điều kiện của một mẫu khác từ ActionMailer (Rails 3.1.1). Tôi muốn hầu hết người dùng nhận được mẫu welcome.html.erb
bình thường, nhưng một số người dùng có được mẫu welcome_photographer.html.erb
đặc biệt. Đây là loại điều làm việc trong ActionController:Làm cho Chế độ xem khác nhau (mẫu) cho 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
Nhưng render không hoạt động - tất cả mọi người được chuẩn welcome.html.erb
ngay cả khi @user.is_photographer == true
hoàn hảo - nhờ – brittohalloran
Tôi biết đây là một câu trả lời cũ, nhưng tôi đã tìm thấy nó ngay hôm nay. Nên ': template_name => template' thay vì là': template_name => "template" '? Tôi đã thử nó theo cách của bạn và kết thúc lên đến các tài liệu mà hiển thị nó như là một chuỗi. – Tass
'mẫu' là một biến được đặt thành một chuỗi trên dòng đầu tiên. Dựa trên việc người dùng có phải là nhiếp ảnh gia hay không, 'template' hoặc là" welcome_photographer "' hoặc '" welcome "'. –