ruby-on-rails - 如何返回空的 ActiveRecord 关系?

标签 ruby-on-rails activerecord relation

如果我有一个带有 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/

相关文章:

ruby-on-rails - 使用 RVM 成功安装 Ruby 1.9.2,但现在恢复到 1.8.7

ruby-on-rails - Ruby on Rails : Nested named scopes

laravel - 我怎样才能获得包含所有相关帖子的帖子?

mysql - 试图将外键与触发器结合起来

ruby-on-rails - Rails "where"方法通过子属性查找父项

javascript - 如何在 JavaScript 中访问 Rails 路由/URL?

ruby-on-rails - 部分加载 Rails 以运行规范

ruby-on-rails - Rails 4 如何在列表中显示 belongs_to 记录

ruby-on-rails - 编写 ActiveRecord 适配器

Extjs hasOne 关联本地模式