我已经构建了一个Ruby on Rails应用程序,允许用户跟踪他们的锻炼。
User has_many :workouts
Workout belongs_to :user
我试图仅呼叫男性用户的锻炼。如何为Workout.rb
编写命名范围,仅调用男性用户的锻炼?
就我而言,user.sex列是一个收集Male
或Female
的字符串。
我在这个特定应用程序中使用rails 2.3.8。
答案 0 :(得分: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