我编写了一个生成器,它为用户创建了一个关注点,以包含在他们的模型中。它在 Rails 4.1.8 上正常工作,但在 Rails 4.2.0 上,我收到以下消息:
LoadError: Unable to autoload constant Concerns::NameSearch.
NameSearch
是生成器创建的关注模块,app/models/concerns/name_search.rb
:module NameSearch
extend ActiveSupport::Concern
included do
...
end
module ClassMethods
...
end
private
...
end
在模型中,我只是
include NameSearch
.在包含关注点后运行 rake 任务(迁移)时出现错误。应用程序实际上运行正常,只是抛出错误的 rake 任务。并且 rake 任务似乎也完成了它的工作,但最后抛出了这个错误。同样,这在 4.1.8 中运行良好,但在 4.2.0 中却不行。知道发生了什么变化吗?
最佳答案
您需要使用正确的 Ruby 常量查找约定(添加 Concerns:: 到模块):
应用程序/模型/关注/name_search.rb
module Concerns::NameSearch
extend ActiveSupport::Concern
included do
...
end
module ClassMethods
...
end
private
...
end
关于ruby-on-rails-4 - 升级到 rails 4.2,Model Concerns 现在给出 LoadError: Unable to autoload constant Concerns::blahblah,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29353426/