Rails2 - 未初始化的常量My :: User :: ApplicationHelper

时间:2012-09-03 01:00:00

标签: ruby-on-rails ruby

我有一个包含在插件中的类,其中包含以下行

user.rb

class My::User < My::AbstractModel
  delegate :message_t, :to => ApplicationHelper

  #omited
end

所以我需要在这个模型中调用application_helper.rb中定义的*'message_t'*函数,

然而,Jenkins未能测试它,错误'未初始化的常量My :: User :: ApplicationHelper',所以我想在application_helper.rb之前加载了用户模型。我该如何解决?有没有其他方法可以调用*'message_t'*或者我可以更改文件加载顺序吗?我应该吗?

2 个答案:

答案 0 :(得分:1)

您无法从模型层访问rails助手。助手旨在协助演示,并由视图(有时是控制器)层使用。

此外,delegate用于将消息传输到直接关联的模型 - 而不是任意类。

我建议将message_t方法从ApplicationHelper中移出到您的模型可能需要的某个库文件中。然后使用代理对象来调用它而不是使用delegate。或者,您可以为此目的关联代理对象,如果您喜欢它的声音则使用delegate:)

答案 1 :(得分:0)

您可以在模型中require 'application_helper'。它将确保在模型之前加载application_helper。