我想知道如何让一个帮助文件的功能可用于动作邮件?我有一个名为UserMailer的动作邮件程序和一个名为sessions_helper.rb的帮助程序。我如何使方法可用于UserMailer?香港专业教育学院试过'包含',但它给出了以下错误
我试图获取的方法是“current_user”,我收到错误
undefined local variable or method `cookies'
即时使用rails 3.2.1
感谢
答案 0 :(得分:4)
你可以在这样的邮件中帮助你,
class Notifier < ActionMailer::Base add_template_helper(ApplicationHelper) #... end
就current_user而言,我认为邮件不像ActionController那样有任何cookie的概念。作为一个更好的设计选择,我会让我的邮件独立于current_user。邮件程序不关心current_user是谁(类似于模型)。 对于这一点,邮寄者甚至不关心用户是谁,他们关心的是“电子邮件,主题和正文”。
因此,当调用邮件程序方法时,您可以向它们传递用户对象(它可以是current_user或任何其他身体),以便他们可以获取电子邮件,生成主题和正文。
答案 1 :(得分:2)
我必须使用以下内容将文件添加到config/initializers
:
class ActionMailer::Base
helper MiscHelper
helper ExtraMailHelper
end
我想你会根据需要为其他帮助者添加行,例如:
class ActionMailer::Base
helper MiscHelper
helper ExtraMailHelper
helper SessionsHelper
end
答案 2 :(得分:1)
如果您想在特定的邮件程序中包含特定的帮助程序,可以使用它。
class RegistrationMailer < ActionMailer::Base
include MyOwnHelper
def method
end
end