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?

È stato utile?

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
scroll top