我正在使用具有 100 多个模型的 rails 3.2.3。问题是目录 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
在我的 rails 控制台中,它适用于任何具有绝对引用的模型,除了 activerecord 关联。我不能调用Listing.first.communications。我看到它正在尝试加载Listing::Communication,它失败了,因为这个文件的内容是Communication(没有命名空间)。
LoadError: Expected /home/chamnap/my_app/app/models/listing/communication.rb to define Listing::Communication
有没有办法将模型分组到目录中并在没有命名空间的情况下使用它们?或者有没有办法预加载所有模型,这样 Rails 就不会动态加载模型?