2013-03-16 59 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