How to use my view helpers in my ActionMailer views?

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

link|flag

67% accept rate

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

class ReportMailer < ActionMailer::Base
  add_template_helper
(AnnotationsHelper)

 
...
end
link|flag
That's easy enough! – Horace Loeb Sep 15 '09 at 2:10

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

link|flag
  
原文地址:https://www.cnblogs.com/lexus/p/1907213.html