升级到rails 4.2,模型问题现在给出LoadError:无法自动加载常量问题:: blahblah

时间:2015-03-30 18:22:45

标签: ruby-on-rails-4

我写了一个生成器,它为用户创建了一个包含在他们模型中的关注点。它在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中没有。知道改变了什么吗?

2 个答案:

答案 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