3

こんにちは私はnamed_scope私のUserモデルに次のようにしています。

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

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

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

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

4

1 に答える 1

3

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

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 スコープを他の場所で明示的に必要としないことを条件としています。

于 2009-10-26T15:30:33.060 に答える