我有一个包含在插件中的类,其中包含以下行
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'*或者我可以更改文件加载顺序吗?我应该吗?
答案 0 :(得分:1)
您无法从模型层访问rails助手。助手旨在协助演示,并由视图(有时是控制器)层使用。
此外,delegate
用于将消息传输到直接关联的模型 - 而不是任意类。
我建议将message_t
方法从ApplicationHelper中移出到您的模型可能需要的某个库文件中。然后使用代理对象来调用它而不是使用delegate
。或者,您可以为此目的关联代理对象,如果您喜欢它的声音则使用delegate
:)
答案 1 :(得分:0)
您可以在模型中require 'application_helper'
。它将确保在模型之前加载application_helper。