如果我有一个带有 lambda 的作用域,并且它需要一个参数,根据参数的值,我可能知道不会有任何匹配项,但我仍然想返回一个关系,而不是一个空数组:
scope :for_users, lambda { |users| users.any? ? where("user_id IN (?)", users.map(&:id).join(',')) : [] }
我真正想要的是一个“none”方法,与“all”相反,它返回一个仍然可以链接的关系,但会导致查询短路。
最佳答案
Rails 4 现在有一个“正确”的机制:
>> Model.none
=> #<ActiveRecord::Relation []>
关于ruby-on-rails - 如何返回空的 ActiveRecord 关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4877931/