首页 > 解决方案 > 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对某些代码进行修改后...所以我每次都需要重新启动服务器(更新代码)。谢谢你。

标签: ruby-on-railsrubyfunctionclassmodel

解决方案


这可以添加到您的目录中config/application.rb以加载您的lib/目录:

config.eager_load_paths << Rails.root.join('lib')

添加后重新启动本地服务器。

请记住,如果您使用autoload_paths

但是在过去(Rails 5 之前)使用 autoload_paths 时,开发人员可能会配置 autoload_paths 以添加额外的位置(例如,几年前曾经是自动加载路径列表的 lib,但现在不再是)。然而,现在大多数情况下不鼓励这样做,因为它可能会导致仅生产错误。


推荐阅读