Ruby on rails 3 使用include查找ActiveRecord

Ruby on rails 3 使用include查找ActiveRecord,ruby-on-rails-3,activerecord,Ruby On Rails 3,Activerecord,假设Person有许多地址,通过这个查询,我可以遍历循环并使用这些人的地址 @people = Person.find(:all, :include => :addresses) 但是,例如,我只想包括用户_id=1的地址 如何构建查询来实现这一点 对RoR来说是新的 @people = Person.find(:all, :include => :addresses, :conditions => ['user_id=?',params[:user_id]]) 请注意,当

假设Person
有许多
地址,通过这个查询,我可以遍历循环并使用这些人的地址

@people = Person.find(:all, :include => :addresses)
但是,例如,我只想包括用户_id=1的地址

如何构建查询来实现这一点

对RoR来说是新的

@people = Person.find(:all, :include => :addresses, :conditions => ['user_id=?',params[:user_id]])
请注意,当包含时,每一列只能有一列,否则rails将给您一个关于不明确查找条件的错误


请注意,当包含时,每一列只能有一列,否则rails将给您一个关于不明确查找条件的错误。

使用此条件,我得到的查询将在Person表而不是Addresses表中搜索用户id:|我需要传递筛选包含地址表的条件。try':joins=>:Addresses',从RoR 3.2开始,所有(:include=>:addresses,:conditions=>['user\u id=?',params[:user\u id]])都将取代“:include”,使用此条件,我得到的查询将在Person表中而不是在addresses表中搜索用户id:|我需要传递筛选包含地址表的条件。try”:joins=>:addresses',从RoR 3.2开始,它将取代“:include”,改为:@people=Person.all(:include=>:address,:conditions=>['user\u id=?',params[:user\u id]])