2010-12-14 3 views
0

Ich habe eine Ruby on Rails-Anwendung erstellt, mit der Benutzer ihre Trainingseinheiten verfolgen können.Wie kann ich eine zugeordnete Ressourcenspalte mit einem named_scope filtern?

User has_many :workouts

Workout belongs_to :user

Ich versuche, von männlichen Nutzern nur Training zu nennen. Wie schreibe ich einen benannten Bereich für Workout.rb, um nur Workouts von männlichen Benutzern aufzurufen? In meinem Fall ist die Spalte user.sex eine Zeichenfolge, die entweder oder Female erfasst.

Ich verwende Schienen 2.3.8 für diese spezielle Anwendung.

Antwort

2

Try this:

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 

Jetzt können Sie den Umfang als verwenden:

Workout.all_male  
Workout.all_female 
+0

schön, danke. Gut, dich wieder zu treffen KandadaBoggu. Du warst mir in der Vergangenheit eine große Hilfe. – bgadoci