ruby-on-rails - ActionView::Template::Error(未初始化的常量 `LibObject`):
问题描述
我在 lib 文件夹中添加了一个对象。它第一次运行良好,但如果我修改控制器或模型,那么它会说Uninitialized constant error
......
这是 lib/lib_object.rb
class LibObject
def object_description
"object description"
end
end
它是从模型中调用的。
def object_description
return LibObject.new.object_description
end
我不确定,为什么我要uninitialized constant error
对某些代码进行修改后...所以我每次都需要重新启动服务器(更新代码)。谢谢你。
解决方案
这可以添加到您的目录中config/application.rb
以加载您的lib/
目录:
config.eager_load_paths << Rails.root.join('lib')
添加后重新启动本地服务器。
请记住,如果您使用autoload_paths:
但是在过去(Rails 5 之前)使用 autoload_paths 时,开发人员可能会配置 autoload_paths 以添加额外的位置(例如,几年前曾经是自动加载路径列表的 lib,但现在不再是)。然而,现在大多数情况下不鼓励这样做,因为它可能会导致仅生产错误。
推荐阅读
- sprite-kit - 在 SpriteKit 中管理 UI 的最佳实践
- sql - 这是我的查询,但有一个列我不想分组,但我希望它在条件下使用
- javascript - 如何在 Mongoose 模型的多个文档中多次更新数组中的任何匹配,而不仅仅是第一次?
- node.js - Stripe:将付款发送到客户的外部银行账户或借记卡
- python - 如何脚本从 Firefox 的内存缓存中检索文件?
- python - 如何编写一个计算两列不同大小的相同和不同 ID 的函数
- zuora - 祖拉。获得与付款退款相关的付款
- python - 熊猫 groupby 和地图值列表
- python - 使用 os.system 从 python 提示符执行命令
- c++ - 如何根据初始化参数修复类函数行为