我写了一个生成器,它为用户创建了一个包含在他们模型中的关注点。它在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中没有。知道改变了什么吗?
答案 0 :(得分:-1)
您需要使用正确的Ruby常量查找约定(将 Concerns :: 添加到模块中):
应用程序/模型/关切/ name_search.rb
module Concerns::NameSearch
extend ActiveSupport::Concern
included do
...
end
module ClassMethods
...
end
private
...
end
答案 1 :(得分:-2)
在app / models / concerns / name_search.rb中添加(要求' active_support / Concer' )
例如:
要求' active_support / Concer'
模块NameSearch
#codes
端