4

ユーザーモデルとプロファイルモデルがあります。各ユーザーhas_oneプロファイル。プロファイルには都市属性があります。ここで、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:ERROR:Missing FROM-clause entry for table"profile""。

4

2 に答える 2

12

:profilewhere句を複数形にする必要があります。

 joins(:profile).where(:profiles => {:city => user.profile.city})
于 2013-03-16T13:04:16.060 に答える
-1

使用してみてください:
... where(user.profile => {city:user.profile.city})

于 2013-03-16T11:13:38.717 に答える