Rails 2 условия слияния для области в модели - PullRequest
1 голос
/ 20 марта 2012

У меня есть две области действия

named_scope :by_foo, lambda { |foo| { :conditions =>  {:foo => foo} } }
named_scope :by_bar, lambda { |bar| { :conditions =>  ["bar like ?", bar+"%"] } }

Как я могу смешать их в одной области без цепочки?

named_scope :by_baz # what that should look like ?   

Ответы [ 2 ]

4 голосов
/ 20 марта 2012

named_scope :by_baz, lambda {|args| by_foo(args[:foo]).by_bar(args[:bar])}

Вы можете позвонить по этому номеру:

Model.by_baz({:foo=>value, :bar=>value})

Таким образом, вы можете добавить столько областей, сколько захотите, не переписывая условие.

1 голос
/ 20 марта 2012
named_scope :by_foo_and_bar, lambda { |foo, bar| { :conditions =>  ["foo = ? AND bar like ?", foo, bar+"%"] } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...