Rails 4:Devise邮件程序视图的Helper方法有时会抛出未定义的方法异常

时间:2016-03-10 13:28:56

标签: ruby ruby-on-rails-4 devise actionmailer

为了在邮件程序中使用自定义帮助器方法,我必须定义一个模块并创建一个方法如下,

# 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)中发生这种情况?

注意: - 这可以在生产框中找到。但我有点担心它是否也会出现在制作中。

2 个答案:

答案 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