2017-05-02 21 views
0

Railsのアクティブレコードは、次のエラーをスローします。引数の数が間違っています。

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

問題がwhere.notであるvalid_until

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 

ための5つのnilのエントリがあります。何か案は?

+2

どのようなレールのvresionですか? – SteveTurczyn

+0

@SteveTurczyn Rails 3.2.13 – Sam

+1

'where.not'はずっと後で導入されましたが、Rails 3では利用できません – Iceman

答えて

4

Rails 4では、.notが導入されています。あなたはRails 3.2.13で作業していますので、次のようにしなければなりません:

Subscription.where('valid_until IS NULL and activated_on IS NOT NULL') 
関連する問題