2013-03-16 63 views
2

我有一个User模型和一个Profile模型。每个用户拥有一个配置文件。该个人资料具有城市属性。现在,我希望用户控制器的索引操作将所有具有与current_user相同城市的用户拉出。所以我有这样的代码在控制器:Rails:如何在sql查询中使用has_one关联中的“连接”

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子句条目表 “轮廓”,“

回答

4

你需要做:profile在where子句复数。

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

尝试使用:
...其中(user.profile => {城市:user.profile。城市})

+0

这没有奏效。感谢您回应,虽然! – pratski 2013-03-16 13:19:09