我正在尝试在我的索引操作中编写一个activerecord查询,该操作仅显示类别类型为“Beaches”的Trips。这是我的代码:
Trip.includes(:categories).where("categories.type" == "#{params[:activity]}").all
params [:activity]返回“Beaches”。
那个查询没有做我认为正在做的事情,似乎给了我所有的旅行。我做错了什么?
答案 0 :(得分:2)
当您按照上面所写的方式执行此操作时,where子句中的条件将应用于类别。
这意味着你获取所有旅行,然后向每个旅程提供一个类别等于“海滩”的类别列表。
你想要做的是:
Trip.joins(:categories).where(categories: { type: params[:activity]} )
您可以在此处阅读有关联接的更多内容,包括Rails :include vs. :joins