views:

324

answers:

2

I want to use the methods I defined in app/helpers/annotations_helper.rb in my ReportMailer views (app/views/report_mailer/usage_report.text.html.erb). How do I do this?

Based on this guide it seems like the add_template_helper(helper_module) method might do what I want, but I can't figure out how to use it.

(BTW, is there a reason you get access to a different set of helpers in mailer views? This is pretty annoying.)

A: 

This might give you some direction, I have a method "check_options" defined in "app/helpers/app_helper.rb"

In my controller that renders the view "app/controllers/app_controller.rb" I have the following line

helper: all # include all the helpers all the time

and then finally in my view I just call the "check_options" like

<% if check_options ...

From the documentation link that you posted looks like you might need

helper(*args, &block)

Declare a helper:
     "helper :foo"  requires ‘foo_helper’ and includes FooHelper in the template class.

Give this link a try as well http://caboo.se/doc/classes/ActionController/Helpers/ClassMethods.html there are some examples that might help

A small excerpt from the page

"By default, the controller will include a helper whose name matches that of the controller, e.g., MyController will automatically include MyHelper."

Cheers

Anand
+4  A: 

In the model class that you are using to manage your emails:

class ReportMailer < ActionMailer::Base
  add_template_helper(AnnotationsHelper)

  ...
end
Mark Connell
That's easy enough!
Horace Loeb