Come riutilizzare gli ambiti denominati?
-
06-07-2019 - |
Domanda
Ciao, ho un named_scope
nel mio modello User
come segue.
named_scope :by_gender, lamdba { |gender| { :conditions => { :gender => gender } } }
Voglio creare altri due ambiti nominati che riutilizzino questo tipo in qualche modo,
named_scope :male, lambda { by_gender('male') }
named_scope :female, lambda { by_gender('female') }
Qualche idea su cosa fare?
Soluzione
È possibile fornire metodi di classe che eseguono l'argomento cablato passando:
def self.male
by_gender('male')
end
def self.female
by_gender('female')
end
oppure, poiché il named_scope che stai utilizzando è così semplice che potresti tagliare l'ambito by_gender e usare semplicemente:
named_scope :male, :conditions => {:gender => 'male'}
named_scope :female, :conditions => {:gender => 'female'}
La seconda opzione è ovviamente subordinata al fatto che in realtà non si richiede esplicitamente l'ambito by_gender altrove.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow