Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where do I put helper methods for ActionMailer views?

I have a method that takes an array of strings and joins them so they do something like this:

>> my_arr
=> ["A", "B", "C"]
>> and_join(my_arr)
=> "A, B, and C"

Which I'd like my mailer to have access to so I can output some information into an email. I can't seem to find a good place to put it and putting it in the application_helper.rb file and it doesn't find it there. Where should it go?

like image 375
aarona Avatar asked Sep 06 '25 03:09

aarona


2 Answers

Use the helper method in your mailer to define the helper class to use

# mailer_helper.rb
module MailerHelper
  def and_join(arr)
    # whatever …
  end
end

# my_mailer.rb
class MyMailer < ActionMailer::Base
  helper MailerHelper
  …
end

then you can use the methods in views as well.

like image 103
edgerunner Avatar answered Sep 07 '25 21:09

edgerunner


It would be worth looking at the to_sentence extension method for arrays that rails provides.

like image 40
Shadwell Avatar answered Sep 07 '25 23:09

Shadwell