为了在邮件程序中使用自定义帮助器方法,我必须定义一个模块并创建一个方法如下,
# app/helpers/mailer_helper.rb
module MailerHelper
def format_email_template
# body..
end
end
然后我不得不告诉Devise
使用这个助手模块。经过一些研究,我找到了一个解决方案,应该在config/initializers/devise.rb
文件
# config/initializers/devise.rb
# Already exists
Devise.setup do |config|
# Some configuration settings
end
# I added this
# If I don't add this, helper methods are not at all available in the mailer views
Devise::Mailer.class_eval do
helper :mailer
end
这很好用,我可以在devise
邮件程序视图中使用帮助方法。
但问题是它有时会抛出错误Undefined method :format_email_template for view class
。然后我不得不重新启动本地服务器以使其工作。这种情况经常发生。
为什么在开发服务器(WEBrick)中发生这种情况?
注意: - 这可以在生产框中找到。但我有点担心它是否也会出现在制作中。
答案 0 :(得分:0)
Undefined method :format_email_templage for view class
也许问题是你的错字(format_email_ templage )?请在源代码中再次查看!
答案 1 :(得分:0)
尝试使用:
helper :mailer
在您的自定义邮件程序类中,如下所示:https://github.com/plataformatec/devise/wiki/How-To:-Use-custom-mailer