Я думаю, что схожу с ума.
Давайте скажем, у меня есть 3 модели: Адрес, Склад, Категория:
class Address < ActiveRecord::Base
belongs_to :category
belongs_to :addressable, :polymorphic => true
scope :billing_addresses , where(:categories => {:name => 'billing'}).joins(:category)
scope :shipping_addresses , where(:categories => {:name => 'shipping'}).joins(:category)
end
class Category < ActiveRecord::Base
has_many :addresses
has_many :subcategories, :class_name => "Category", :foreign_key => "category_id"
belongs_to :category, :class_name => "Category"
end
class Warehouse < ActiveRecord::Base
has_many :addresses, :as => :addressable
end
Адрес является полиморфным, потому что в конечном итоге я буду использовать его для хранения адресов клиентов, людей, сотрудников и т. д. Также каждый адрес может быть определенного типа: Что бы я ни делал, я не могу заставить рельсы предварительно загрузить все столы. Что я делаю не так?