Wie kann ich wieder zu verwenden Scopes?
-
06-07-2019 - |
Frage
Hallo Ich habe einen named_scope
in meinem User
Modell wie folgt.
named_scope :by_gender, lamdba { |gender| { :conditions => { :gender => gender } } }
Ich möchte anderen beiden genannten Bereiche erstellen, die diese eine etwas wiederzuverwenden wie,
named_scope :male, lambda { by_gender('male') }
named_scope :female, lambda { by_gender('female') }
Jede Idee, was zu tun?
Lösung
Sie können Klassenmethoden zur Verfügung stellen, die die fest verdrahtete Argumentübergabe durchführen:
def self.male
by_gender('male')
end
def self.female
by_gender('female')
end
oder, wie die named_scope Sie verwenden so einfach ist, könnten Sie den by_gender Umfang ausgeschnitten und einfach verwenden:
named_scope :male, :conditions => {:gender => 'male'}
named_scope :female, :conditions => {:gender => 'female'}
Die zweite Option ist natürlich davon abhängig Ihnen nicht tatsächlich den by_gender Umfang erfordern explizit irgendwo anders.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow