使用params查询带有belongs_to的模型

时间:2014-10-30 14:07:45

标签: ruby-on-rails ruby postgresql ruby-on-rails-4 rails-activerecord

我在我的控制器中有这个查询,它将参数作为参数

@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

1 个答案:

答案 0 :(得分:1)

不,你应该使用joins

@animal = Animal.joins(:user).where(users: { town: params[:animal_town] })

顺便说一句,"#{params[:animal_town]}"毫无意义,因为它等同于params[:animal_town]