0

我有两个型号merchantcategory与HABM关系等等都接合表中调用categories_merchants如何搜索没有模型的Rails 3中的连接表?

我怎么能写在ActiveRecords下面的查询?

SELECT 
    categories_merchants.merchant_id 
WHERE 
    categories_merchants.category_id IN (1,2,3,4) 

注:接合表没有一个模型,它在Rails 3的自动工作,而不需要一个。

回答

1

如果您想要做这样的查询,您应该将您的HABTM转换为has_many :trough,并根据该查询创建连接表和查询的模型。

另外,但有可能进行性能越差,你可以这样做:

Merchant 
    .select(:id) 
    .joins("categories_merchants ON categories_merchants.merchant_id = merchant.id") 
    .where("categories_merchants.category_id IN (?)", [1,2,3,4]) 
+0

由于性能是不是一个问题,我尝试使用这种类型的查询 - 但要得到一个'''未定义的方法' '为#'''错误 – Jacob

+0

它''.joins'不''加入对不起,我编辑。 – clyfe