在控制器中定义的邮件程序中使用帮助程序方法

时间:2010-05-14 02:36:06

标签: ruby-on-rails ruby helper

帮助方法current_user已定义并在ApplicationController中作为帮助程序提供,如下所示:

class ApplicationController < ActionController::Base
  helper_method :current_user
    def current_user
        return @current_user if defined?(@current_user)
        @current_user = current_user_session && current_user_session.record
    end
end

我的问题是我如何在邮件程序模板中使用current_user辅助方法(显然它总会返回nil,但我正在尝试渲染一个取决于它的部分。)< / p>

通常当我想在邮件程序中使用帮助程序时,我会执行类似add_template_helper(SongsHelper)的操作,但由于帮助程序是在类中而不是模块中定义的,所以我不知道该怎么做

1 个答案:

答案 0 :(得分:4)

我喜欢在变量中传递用户,然后在模板中使用它。它将current_user调用传递给控制器​​(我通常从那里发送邮件)。

另一种解决方案是将current_user和支持方法放入模块中,并将其混合到ApplicationController中,并使用继承自ActionMailer :: Base的类中的helper方法。如果您对此方法感兴趣,请查看the docs