has_one
そのプロファイルのユーザーモデルがあります。ユーザーモデルに次のコードがあります。
class User < ActiveRecord::Base
scope :city, lambda { |user| joins(:profile).where(:profiles => {:city => user.profile.city})}
end
次に、Usersコントローラーのインデックスアクションで:
def index
@users = User.city(current_user).paginate :page => params[:page], :per_page => 20
end
これにより、と同じ都市からすべてのユーザーを取得できますcurrent_user
。また、プロフィール写真をアップロードしているユーザーのみを取得したいと思います。私はペーパークリップを使用しており、画像の列はユーザーテーブルにあります。のようなものを追加したかったshow users where image_file_name != nil
。ただし、上記のスコープにはプロファイルテーブルが含まれます。クエリをマージして、Usersテーブルの列とprofilesテーブルの列を含めるにはどうすればよいですか?