ActiveRecord包括并且查询返回太多结果

时间:2015-03-09 14:48:04

标签: ruby-on-rails ruby activerecord

我正在尝试在我的索引操作中编写一个activerecord查询,该操作仅显示类别类型为“Beaches”的Trips。这是我的代码:

Trip.includes(:categories).where("categories.type" == "#{params[:activity]}").all

params [:activity]返回“Beaches”。

那个查询没有做我认为正在做的事情,似乎给了我所有的旅行。我做错了什么?

1 个答案:

答案 0 :(得分:2)

当您按照上面所写的方式执行此操作时,where子句中的条件将应用于类别。

这意味着你获取所有旅行,然后向每个旅程提供一个类别等于“海滩”的类别列表。

你想要做的是:

Trip.joins(:categories).where(categories: { type: params[:activity]} )

您可以在此处阅读有关联接的更多内容,包括Rails :include vs. :joins