使用ApplicationHelper的ActionMailer类中的未定义方法

时间:2014-12-16 03:18:00

标签: ruby-on-rails actionmailer

application_helper.rb

class ApplicationHelper

  def user_name(user)
    if user.name.length > 2
      return user.name
    else
      return user.email
    end
  end

  ...

end

类ForumMailer<的ActionMailer ::基

class ForumMailer < ActionMailer::Base
  add_template_helper(ApplicationHelper)

  @username = user_name(User.find_by_id(1))
end

错误

NoMethodError:#

的未定义方法user_name

3 个答案:

答案 0 :(得分:1)

您需要添加helper :application

class ForumMailer < ActionMailer::Base
helper :application # include application helper

.....
end

答案 1 :(得分:0)

我最好的客人是你还没有包含你的application_helper.rb。 尝试在forum_mailer.rb文件的第一行请求帮助程序:

require './path/to/application_helper'

答案 2 :(得分:0)

您需要在实例方法内部而不是在类内部使用助手。