1

私はdevise_invitableを使用しています。

私はすべてのユーザーを見つけようとしていますinvitation_token != nil

私はそれUser.where(:invitation_token != nil) でうまくいくと思いました..しかし、それはすべてのユーザーを返します..

私がする時

pry(main)> User.where(:invitation_token != nil)[0].invitation_token
  User Load (1.0ms)  SELECT "users".* FROM "users" WHERE ('t')
=> nil

だから私はここで何が起こっているのか分かりません..テストが偽のときにどこを使ってモデルを見つけるにはどうすればよいですか?

4

3 に答える 3

2

やったほうがいい:

User.where('invitation_token IS NOT NULL')

:invitation_token != nilに評価されるため、ソリューションは機能しませんtrue。実際に行ったことは次のとおりです。

User.where(true)
于 2012-11-12T12:49:47.377 に答える
1

Railsのバージョンにもよりますが、これはよりきれいです。

User.where.not(invitation_token: nil)
于 2014-06-19T17:13:20.550 に答える
-1

多分あなたはこのようにすることができます:

User.where(:invitation_token => nil)
User.where("invitation_token IS NULL")

そしてそれは続く...

于 2012-11-12T12:39:32.440 に答える