在Rails 3.1中使自定义辅助方法可供邮件发送器和视图使用

16

这是在Rails 3.1中将帮助程序同时提供给Mailer和View的最佳方法吗?

class EventMailer < ActionMailer::Base
  include MailerHelper
  helper :mailer

我尝试过

helper :mailer

我本来想单独使用它,但这样不能在EventMailer类中使用辅助函数。

我尝试过

add_template_helper(MailerHelper)

但是遇到了同样的问题。

1个回答

33
Rails的助手方法应该是视图(view)助手。
你会注意到以下代码:
class MyController < ApplicationController
    helper :my
end
helper :my将使得MyHelper中的方法能在视图中使用,但不能在控制器中使用。而include MyHelper则能让控制器中使用这些辅助方法。
简而言之,helper :my可在视图中使用辅助方法,include MyHelper则可在控制器中使用辅助方法。
class EventMailer < ActionMailer::Base
    include MailerHelper
    helper :mailer

    # rest of the code goes here ...
end

这将实现你想要的功能,并允许你在邮件发送器和视图中使用你的辅助函数。

希望这可以帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接