我在我的控制器中有这个查询,它将参数作为参数
@animal = Animal.where(animal_type: params[:animal_type], rehomed: params[:rehomed])
我想做的是查询另一个模型中的列
class Animal
belongs_to :user
end
我认为我可以使用.includes吗?
@animal = Animal.includes(:user).where('users.town = ?', "#{params[:animal_town]}")
我得到语法错误,并且在如何构造此查询方面有点迷失,理想情况下我想查询用户表中的城镇以及动物表格中的animal_type和rehomed
答案 0 :(得分:1)
不,你应该使用joins
:
@animal = Animal.joins(:user).where(users: { town: params[:animal_town] })
顺便说一句,"#{params[:animal_town]}"
毫无意义,因为它等同于params[:animal_town]
。