2010-12-14 15 views
0

私は、ユーザーがトレーニングを追跡できるRuby on Railsアプリケーションを構築しました。named_scopeを使用して関連するリソース列をフィルタリングするにはどうすればよいですか?

User has_many :workouts

Workout belongs_to :user

私は男性ユーザーからのみのワークアウトをコールしようとしています。男性ユーザーのトレーニングのみを呼び出すためのWorkout.rbの名前付きスコープを作成するにはどうすればよいですか?

私の場合、user.sex列は、MaleまたはFemaleのいずれかを収集する文字列です。

この特定のアプリケーションでは、レール2.3.8を使用しています。

答えて

2

これを試してみてください:

class Workout 

    belongs_to :user 
    named_scope :all_male, :joins => :user, 
          :conditions => ["users.sex = ?", "Male"] 

    named_scope :all_female, :joins => :user, 
          :conditions => ["users.sex = ?", "Female"] 

end 

今、あなたのようにスコープを使用することができます。

Workout.all_male  
Workout.all_female 
+0

美しい、ありがとうございました。カンダダボグにもう一度走れていいよ。あなたは過去に私に大きな助けをしてきました。 – bgadoci