Мне интересно, как бы вы имитировали: has_many: через вызов AR.
В конечном счете, я пытаюсь найти подкатегории, принадлежащие сайту, а не категории верхнего уровня, что и дает мне данный запрос.
Модель:
class Categories < AR
:has_many :subcategories, :through => :cat_subcat_links
:has_many :cat_subcat_links
end
Модель связывания:
class CatSubcatLinks < AR
:category_id
:subcategory_id
:site_id
end
На данный момент, если я хочу узнать, какие категории принадлежат конкретному сайту, я выполняю:
Category.joins(:cat_subcat_links).where(:cat_subcat_links => {:site_id => 1})
Запрос, который возвращает:
SELECT `categories`.* FROM `categories` INNER JOIN `cat_sub_links` ON `cat_sub_links`.`category_id` = `categories`.`id` WHERE `cat_sub_links`.`site_id` = 1
Проблема в
`cat_sub_links`.`category_id` = `categories`.`id`
Мне нужно это сказать
`cat_sub_links`.`subcategory_id` = `categories`.`id`
Это заставит запрос вернуть мне подкатегории. Мысли? * * 1023
Спасибо заранее,
Justin