Итак, я имел в Rails 2 что-то вроде этого:
config.autoload_paths += Dir["#{config.root}/app/models/**/"]
И следующие файлы:
- app / models / user / base.rb:
class User::Base
- app / models / user / admin.rb:
class User::Admin
Когда я обновлялся до Rails 3, я продолжал получать сообщение об этом: Expected .../app/models/user/foo.rb to define Foo
. Это явно казалось сумасшедшим, поскольку Rails 2 автоматически предполагал, что то, что вы поместите в user / foo.rb, будет User::Foo
, а не просто Foo
.
Таким образом, в итоге я решил избавиться от подкаталогов модели в autoload_paths
и сделать что-то вроде этого:
Я создал app / models / user.rb с:
module User
autoload :User, 'user/base'
autoload :User, 'user/admin'
end