名前付きスコープを再利用するにはどうすればよいですか?
-
06-07-2019 - |
質問
こんにちは、 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スコープを他の場所で明示的に必要としないことを条件としています。
所属していません StackOverflow