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.autoload_paths += Dir["#{config.root}/app/models/**/"]
于 2013-01-09T13:55:20.337 に答える
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 に答える
-1

class ContextType ... endto モジュールをラップします。

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