【发布时间】:2026-01-05 12:10:01
【问题描述】:
在我的 Rails 5 应用程序中,我在 app/lib 中有一个模块
module LibClass
CONSTANT_NAME = ‘somevalue’
end
然后在模型中我引用模块:
class SomeModel < ApplicationRecord
def lib_class_constant
LibClass::CONSTANT_NAME
end
end
当我在控制台中的 SomeModel 实例上调用 lib_class_constant 时,一切都按预期工作
但如果我在视图中做同样的事情:
<%= some_model_instance.lib_class_constant %>
我收到如下错误:
未初始化的常量 SomeModel::LibClass
如果我直接在视图中引用模块:
<%= LibClass::CONSTANT_NAME %>
我收到如下错误:
未初始化的常量 ActionView::CompiledTemplates::LibClass
我在这里错过了什么?
【问题讨论】:
-
试试
::LibClass::CONSTANT_NAME -
@Vasilisa 谢谢,但这没有用。它取消嵌套它,但我仍然得到
uninitialized constant LibClass。这仅在视图/控制器中可以在这些上下文之外正常工作 -
尝试停止rails服务器并运行
spring stop && rails server -
确保在lib_class.rb中定义了LibClass,否则自动加载的大神会生气。
-
你需要这个文件吗(需要'lib_class')?
标签: ruby-on-rails ruby-on-rails-5