我有两个模型:Region和Item,带有has_many_through关联。
我可以按预期写作:
Region.find(4).items
我想要实现的是
Region.where(:id => [4,5,6]).items
这导致
undefined method `items'
有一种简单的方法吗?除了循环区域并结合结果?
答案 0 :(得分:1)
您可以尝试此查询
Region.where(id: 2..5).includes(:hosts)
这返回一个activerecord关系。每个区域对象都将加载相关的主机。
答案 1 :(得分:0)
正如权力建议的那样,这就是我所需要的:
Item.joins(:regions).where("regions.id IN (?)", [4,5,6])
我在周围添加了()?使它真正起作用。
答案 2 :(得分:0)
试试这个
result = Region.where(:id => [4,5,6]).map(&:items)
如果您想要单个数组,请在结果上调用flatten
方法。