После DBStructure:
App
has_many :app_versions
AppVersion
has_many :found_items
has_many :items, through => :found_items
FoundItem
belongs_to :app_version
belongs_to :item
Item
has_many :found_items
has_many :app_versions, through => :found_items
Я хочу получить все Apps
, которые включают Item
.
Я не знаю, как запросить эту схему, чтобы получить результаты, поскольку существует так много уровней.
Я могу сделать это следующим образом:
apps = []
item.app_versions.each {|av| apps << av.app} => takes lots of database queries
apps.uniq!
updated version:
item.app_versions.find(:all, :include => :app).each {|av| apps << av.app}
apps.uniq!
//Not so many queries
Кто-то указатель?