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

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -