Ruby on rails 3 即时加载-仅加载特定记录

Ruby on rails 3 即时加载-仅加载特定记录,ruby-on-rails-3,Ruby On Rails 3,关于快速加载的快速问题。我有以下代码: @使用者= 用户。包括:餐厅。按唯一标识参数查找唯一标识参数[:唯一标识] 但是,我只想加载与给定用户关联的餐馆,前提是餐馆的列表id为X,这是餐馆表的一列 我该怎么办 我尝试了以下操作,但它仍然加载了与用户关联的所有餐厅记录 @user = User.includes(:restaurants).where(:restaurants => {:list_id => params[:list_id]}).find_by_unique_ident

关于快速加载的快速问题。我有以下代码:

@使用者= 用户。包括:餐厅。按唯一标识参数查找唯一标识参数[:唯一标识]

但是,我只想加载与给定用户关联的餐馆,前提是餐馆的列表id为X,这是餐馆表的一列

我该怎么办

我尝试了以下操作,但它仍然加载了与用户关联的所有餐厅记录

@user = User.includes(:restaurants).where(:restaurants => {:list_id => params[:list_id]}).find_by_unique_identifier(params[:unique_identifier])

假设已设置所有关联要求,则可以使用联接:

更新:
我的代码获取一个用户列表。但是,您可以使用筛选方法缩小列表范围或获取单个记录。

顺便说一句,一个用户有许多餐厅,而一个餐厅通过关联联接表有许多用户。是的,但这并不会查找实际用户。必须通过分配给每个用户的唯一_标识符查找用户。因此,首先我想使用此方法找到用户,然后拉入该特定用户的餐厅,但仅限于与给定列表id匹配的餐厅。如果这听起来有点复杂,请道歉。如果我能更好地解释它,请告诉我。为什么不添加另一个条件,如:和id=?然后从列表中取出第一项。这是一个快速的答案…让我们假设,例如,你使用我的原始代码从上面,所以它已经取得了所有的餐厅记录,为给定的用户。然后,我如何将餐厅列表细化为只针对其列表id与特定值匹配的餐厅?类似于以下内容:@user\u restaurants=@user.restaurants.where:list\u id=>1。我知道这不是正确的代码,但是我怎样才能正确地编写它呢?
@user = User.all(:conditions =>["restaurants.list_id = ?", params[:list_id] ], :joins => [:restaurants])