Rails 3.2.3 を 100 以上のモデルで使用しています。問題は、ディレクトリ app/models が混みすぎていることです。ディレクトリをいくつかのグループに編成し、autoload_paths (新しいサブディレクトリ用) を追加します。モデルで名前空間を使用したくありません。開発には適していない複数の名前空間になってしまうためです。まあ言ってみれば:
# app/models/listing.rb
class Listing < ActiveRecord::Base
has_many :communications
end
# app/models/listing/communication.rb
class Communication < ActiveRecord::Base
end
私のレールコンソールでは、アクティブレコードの関連付けを除いて、絶対参照を持つすべてのモデルで機能します。Listing.first.communications を呼び出すことができません。Listing::Communication を読み込もうとしているのがわかりますが、このファイルの内容が Communication (名前空間なし) であるため失敗しました。
LoadError: Expected /home/chamnap/my_app/app/models/listing/communication.rb to define Listing::Communication
モデルをディレクトリにグループ化し、名前空間なしで使用する方法はありますか? または、Rails がオンザフライでモデルをロードしないように、すべてのモデルをプリロードする方法はありますか?