2010-12-14 65 views
0

我已经构建了一个Ruby on Rails应用程序,允许用户跟踪他们的锻炼。如何使用named_scope过滤关联的资源列?

User has_many :workouts

Workout belongs_to :user

我试图调用从男性用户只锻炼。如何为Workout.rb写一个命名范围,以仅调用男性用户的锻炼?

在我的情况下,user.sex列是一个字符串,它收集MaleFemale

我对这个特定的应用程序使用rails 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

漂亮,谢谢你。很高兴再次遇到你KandadaBoggu。过去你对我很有帮助。 – bgadoci 2010-12-14 06:57:54