1

だから、もしそうなら:

>> User.where("facebook_data IS null")
(0.5ms)  SELECT COUNT(*) FROM `users` WHERE (facebook_data IS null)
=> []

まだの場合は、自分のユーザー アカウントを調べます。

>> u = User.find(225)
=> #<User id: 225, email: "me@example.com", ...etc>
>> u.facebook_data
=> nil

だから私は明らかに持っていませんfacebook_data。where 句を使用すると、このレコードが表示されないのはなぜですか?

4

1 に答える 1

1

わかりましたので、これを最後に、mysqlに入りました:

mysql> select users.facebook_data from users WHERE users.id = 225;
+---------------+
| facebook_data |
+---------------+
| --- 
         |
+---------------+
1 row in set (0.00 sec)

そして、コンソールで..

> User.find(225).facebook_data == nil
User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 225 LIMIT 1
=> true 

それで... ActiveRecordはどういうわけか「NULL」の代わりに「---」を列に入れました......そしてActiveRecordは「---」をnullとして認識しますが、mysqlは同意しません。

于 2012-07-12T00:35:28.607 に答える