Rails 4 – 如果条件不适用范围
我想创建一个具有某些条件的范围,其中一个返回不是特定范围。 目前,此解决方案有效:
scope :my_scope, ->(my_var) { scope = where('TRUE') if my_var.condition1? scope = scope.where({ :some_condition => :some_value }) end if my_var.condition2? scope = scope.where({ :some_condition => :some_value }) end scope }
还有其他更好的解决方案吗?
问候
在Rails 4中,您可以简单地使用all
:
scope :my_scope, ->(my_var) { if my_var.condition? where(some_condition: :some_value) else all end end