【问题标题】:Exclude conditions in active relations, how?排除活动关系中的条件,如何?
【发布时间】:2011-05-25 09:16:10
【问题描述】:

我正在寻找一种相反的方法:

Model.where(:name => 'julian')

类似:

Model.where(:name => is_not('julian'))

我找到了这个post。但是,find(:all, :conditions => {}) 现在在 rails 3 中已弃用,此外,我认为必须存在一种更清洁的方法。

有什么建议吗?

【问题讨论】:

  • 您确定 find(:all, :conditions => {}) 在 rails 3 中已被弃用吗?我正在使用 3.0.7,并且在使用时没有收到任何弃用警告。
  • 根据 this article:conditions 传递给 find 以及 find(:all) 在 Rails 3 中已弃用,并将在 Rails 3.2 中删除。

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord active-relation


【解决方案1】:

简单的答案是:

Model.where('models.name != ?', 'julian')

除非您想构建实际的 Arel 条件,在这种情况下,您会执行以下操作:

Model.where(Model.arel_table[:name].not_eq('julian'))

【讨论】:

    【解决方案2】:

    另外,您可以使用 meta_where gem:https://github.com/ernie/meta_where

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-27
      • 2010-11-04
      • 1970-01-01
      • 2018-10-21
      • 2013-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多