【问题标题】:Throws wrong number of arguments error抛出错误数量的参数错误
【发布时间】:2017-05-02 13:32:37
【问题描述】:

Rails 活动记录抛出以下错误。

 irb(main):030:0* Subscription.where(valid_until: nil).where.not(activated_on: nil)
    ArgumentError: wrong number of arguments (given 0, expected 1+)

valid_until 有 5 个 nil 条目

irb(main):032:0> Subscription.where(valid_until: nil).count
2017-05-02 19:03:43.867 [MEH]  (0.6ms)  SELECT COUNT(*) FROM "pti_subscriptions" WHERE "pti_subscriptions"."valid_until" IS NULL
=> 5

问题在于 where.not。有什么想法吗?

【问题讨论】:

  • 什么版本的导轨?
  • @SteveTurczyn Rails 3.2.13
  • where.not 是在很久以后才引入的,它在 Rails 3 中不可用

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


【解决方案1】:

在 Rails 4 中引入了 where.not。您正在使用 Rails 3.2.13,因此您必须执行以下操作:

 Subscription.where('valid_until IS NULL and activated_on IS NOT NULL')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多