帮助方法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)
的操作,但由于帮助程序是在类中而不是模块中定义的,所以我不知道该怎么做
答案 0 :(得分:4)
我喜欢在变量中传递用户,然后在模板中使用它。它将current_user
调用传递给控制器(我通常从那里发送邮件)。
另一种解决方案是将current_user
和支持方法放入模块中,并将其混合到ApplicationController中,并使用继承自ActionMailer :: Base的类中的helper
方法。如果您对此方法感兴趣,请查看the docs。