ruby on rails - action mailer gives error while passing layout -
in action mailer(rails 3.2.13) have
class repaymentmailer < actionmailer::base default from: "repayments@milaap.org" def repayment_mail user, user_repayment_info, month_date @mail_layout = if condition_true 'layout1' else 'layout2' end mail(to: "#{user.first_name} <#{user.email}>", from: "xxx@xxx.org", bcc: ["xxx <xxx@xxx.org>"], reply_to: 'xxx@xxx.org', subject: "this test" ) |format| format.html { render layout: @mail_layout } format.text end end end when do
puts repaymentmailer.repayment_mail(param1, param2, param3).deliver it gives me error if repayment_mail template exist
actionview::missingtemplate: missing template repayment_mailer/repayment_mail {:locale=>[:en], :formats=>[:text], :handlers=>[:erb, :builder, :coffee, :arb]}. searched in: if remove
|format| format.html { render layout: @mail_layout } format.text end then works without error. want desired layout. can cause of error.
because in error, showing problem line:
missing template repayment_mailer/repayment_mail {:locale=>[:en], :formats=>[:text]**, :handlers=>[:erb, :builder, :coffee, :arb]}. i think didn't read lines below:
class usermailer < actionmailer::base def welcome_email(user) mail(to: user.email) |format| format.html { render layout: 'my_layout' } format.text end end end this render html part using my_layout.html.erb file , text part usual user_mailer.text.erb file if exists.
please read here.
thanks
Comments
Post a Comment