Ruby on rails Rails 5忽略/lib类?

Ruby on rails Rails 5忽略/lib类?,ruby-on-rails,ruby-on-rails-5,Ruby On Rails,Ruby On Rails 5,我在rails中使用了modals。它工作得非常好,但我刚刚升级到Rails 5 beta3,现在它在生产中无法工作 我得到这个错误: Completed 500 Internal Server Error in 22ms (ActiveRecord: 0.9ms) NameError (uninitialized constant ApplicationController::ModalResponder): app/controllers/application_controller.r

我在rails中使用了modals。它工作得非常好,但我刚刚升级到Rails 5 beta3,现在它在生产中无法工作

我得到这个错误:

Completed 500 Internal Server Error in 22ms (ActiveRecord: 0.9ms)

NameError (uninitialized constant ApplicationController::ModalResponder):

app/controllers/application_controller.rb:26:in `respond_modal_with'
app/controllers/tools_controller.rb:28:in `new'
我的遗产是不是被Rails 5抛弃了

我的
类ModalResponder
位于
/lib
中,正在开发中

正在查找有关rails 5更改的信息,但来源仅限于我所知

它说它找不到从Rails 4.2中移到另一个gem中的
ApplicationController::Responder

gem“响应者”
添加到您的gem文件中


lib
中的类不是自动加载的,您必须要求它们

您需要在lib文件夹中的类中添加一个“require”(在application.rb上)

比如:

需要“./lib/someclass”


我建议您将其放入Rails插件中。

config/application.rb
中,更改以下内容:

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

config.autoload\u路径您能描述一下使其成为插件的最佳过程吗?我将lib文件移到了我的/app目录中,以便将其包括在内,但这可能不是最好的?当然!您可以阅读更多关于rails插件的信息。最好全部测试,您可以在插件中添加加载文件设置。只需创建一个插件并将lib文件夹移动到插件中,我建议创建一个文件'Foo'来添加所需的内容。在application.rb项目中,只需添加require“foo”。抱歉,我的英语哈哈。@Arvro仅向自动加载路径添加
lib
,似乎并没有效果。您必须明确要求在生产中自动加载文件。至少我必须这么做才能让它工作。有人知道这是否是故意的行为以及原因吗?@Daniel这个答案可以帮助你:。基本上,自动加载在调用时需要您的类。@Arvro perfect。非常感谢。TL;DR for everyone:将库路径添加到
config.autoload_paths
config.eager_load_paths
中,以加载生产中需要的代码!我可以选择这个作为一个答案,如果你能提供为什么lib不是自动加载的理由。这个答案不够详细,不值得检查。这似乎是Rails 5.0.0中的一个bug。它也存在于测试版之外。对我来说,这只发生在生产中,而不是在开发中。
config.eager_load_paths << Rails.root.join('lib')