質問

こんにちは、 User モデルには named_scope があります。

named_scope :by_gender, lamdba { |gender| { :conditions => { :gender => gender } } }

このスコープを再利用する他の2つの名前付きスコープを作成したい

named_scope :male,   lambda { by_gender('male') }
named_scope :female, lambda { by_gender('female') }

何をすべきか考えていますか

役に立ちましたか?

解決

ハードワイヤード引数の受け渡しを実行するクラスメソッドを提供できます。

def self.male
    by_gender('male')
end

def self.female
    by_gender('female')
end

または、使用しているnamed_scopeは非常に単純なので、by_genderスコープを切り取って単純に使用することができます:

named_scope :male, :conditions => {:gender => 'male'}
named_scope :female, :conditions => {:gender => 'female'}

もちろん、2番目のオプションは、by_genderスコープを他の場所で明示的に必要としないことを条件としています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top