5

从 rails 3.2.9 开始,我无法将模型存储在子文件夹中。在我的应用程序中,我有这棵树:

models
 -type_models
 -assets
 -user
 -concerns

在 application.rb 中还有

config.autoload_paths += Dir["#{config.root}/app/models/*"]

在rails 3.2.9之前一切都很好。现在我有“未知常量”错误。我不想命名大量模型并修复所有应用程序以使用命名空间模型。

Warning: Error loading /var/www/my_app/app/models/type_models/context_type.rb:
uninitialized constant TypeModels::ContextType

文件 context_type.rb:

class ContextType ... end
4

3 回答 3

0

config/application.rb

config.autoload_paths += %W(type_models assets user concerns).map { |folder| "#{config.root}/app/models/#{folder}"}

models/type_models/context_type.rb

class TypeModels::ContextType < ActiveRecord::Base
  ...
end

重新启动 Rails,一切就绪!

于 2014-03-20T12:32:59.707 回答
0

尝试使用:

config.autoload_paths += Dir["#{config.root}/app/models/**/"]
于 2013-01-09T13:55:20.337 回答
-1

包装你class ContextType ... end的模块:

module TypeModels
  class ContextType
    # blah blah
  end
end
于 2014-03-20T11:40:54.997 回答