Rails:如何在sql查询中使用“连接”来获取has_one关联

时间:2013-03-16 10:59:05

标签: ruby-on-rails ruby-on-rails-3

我有用户模型和个人资料模型。每个用户都有_个人资料。该个人资料具有城市属性。现在,我希望Users控制器的索引操作拉出与current_user具有相同城市的所有用户。所以我在控制器中有这个代码:

def index @users = User.same_city_as(current_user).paginate :page => params[:page], :per_page => 10 end

我也有用户模型:

scope :same_city_as, lambda { |user| joins(:profile).where(:profile => {:city => user.profile.city} ) }

这不起作用。我收到此错误“”PGError:错误:缺少FROM-clause条目表“profile”“。

2 个答案:

答案 0 :(得分:7)

您需要在where子句复数中生成:profile

 joins(:profile).where(:profiles => {:city => user.profile.city})

答案 1 :(得分:0)

尝试使用:
... where(user.profile => {city:user.profile.city})