ActiveRecord:通过多个实例查找

时间:2011-03-11 19:20:26

标签: ruby ruby-on-rails-3 activerecord

说我的控制器中有以下内容:

@category1
@category2

我希望找到与这两个类别相关的所有商店...

@stores = @category1.stores + @category2.stores

这个 工作,但不幸的是返回一个未改变的数组,而不是AR :: Base数组,因此,我不能做像分页,范围等... < / p>

在我看来,有一种通过多个实例关联找到的内置方式......不存在吗?

2 个答案:

答案 0 :(得分:0)

#@stores = @category1.stores + @category2.stores
#if you want to call API methods you can just add conditions with the category id
@stores = Store.find(:all, :conditions => ['category_id=?', a || b])

答案 1 :(得分:0)

使用ActiveRecord,无论何时找到一组独特的模型对象,在该模型上调用find通常都是最好的选择。

然后,您需要做的就是使用您关注的类别约束连接表。

@stores = Store.all(:joins => :categories,
                    :conditions => ['category_stores.category_id in (?)', [@category1.id, @category2.id]])