Search code examples
ruby-on-railsactionmailerhelpermethods

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?


Solution

  • 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.