【问题标题】:Rails 4: Helper method for Devise mailer views throws undefined method exception sometimesRails 4:设计邮件程序视图的帮助方法有时会抛出未定义的方法异常
【发布时间】:2016-03-10 13:28:55
【问题描述】:

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

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

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

【问题讨论】:

  • 你能发布完整的堆栈跟踪吗?

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


【解决方案1】:
Undefined method :format_email_templage for view class

也许问题是您的拼写错误(format_email_模板)?请在您的源代码中再次检查!

【讨论】:

  • 是的,这是一个错字!我在我的问题中修改了它。谢谢!
【解决方案2】:

尝试使用:

helper :mailer

在此处建议的自定义邮件类中:https://github.com/plataformatec/devise/wiki/How-To:-Use-custom-mailer

【讨论】:

    猜你喜欢
    • 2013-07-20
    • 2012-11-12
    • 1970-01-01
    • 2011-06-18
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    相关资源
    最近更新 更多