【问题标题】:Adding to active record query based on a condition根据条件添加到活动记录查询
【发布时间】:2013-09-10 21:34:25
【问题描述】:

我收到错误的参数数量错误(0 表示 1+)。 我的代码

  vs = where(created_at: start.beginning_of_day..Time.zone.now)
  vs = where(owner_id: id)
  if cat == "store"
    vs = where.not(store_id: 0) 
  end

问题是那里的 if 条件,它不喜欢我在执行 where 子句之前尝试添加该条件的方式。
有没有办法根据 cat 变量是否存储来将 where 子句添加到 vs ? 谢谢

【问题讨论】:

  • 我想你的意思是vs = vs.where(...)。否则,您每次都只是用新范围替换vs。也许这就是问题的全部?
  • 是的,我也没明白多重声明的意义。

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


【解决方案1】:

不,问题不在于您如何添加条件。这是条件本身,因为where 需要一个参数。 where.not 根本不起作用。

试试where('store_id <> 0')

【讨论】:

  • 除非 OP 决定升级到 Rails 4。然后where.not 可以工作。
猜你喜欢
  • 1970-01-01
  • 2015-12-12
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 2012-08-01
  • 1970-01-01
  • 2020-01-26
相关资源
最近更新 更多