这可能是一个可怕的头衔,但是这里有。
我有两个模型,项目和类别。这是一个多对多的关系(项目可以属于多个类别,类别可以包含多个项目。)
查找类别列表的最佳方式是什么(例如,通过名称')并查找其中包含的所有项目?如果我使用SQL,我会执行以下操作:
SELECT * FROM items
WHERE category_id in (
SELECT id FROM category
WHERE name IN ('cat1', 'cat2', 'cat3')
)
或者其他什么,但如果可能的话,我想以Railsy的方式做这件事。
谢谢!
答案 0 :(得分:1)
你可以做到
Item.joins(:categories).where("categories.name" => ['cat1', 'cat2', 'cat3'])
答案 1 :(得分:0)
编辑
Item.includes(:categories).where("categories.name IN(?)", list_of_names)