Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么activerecord找不到具有空列的记录?_Ruby On Rails_Ruby On Rails 3_Activerecord - Fatal编程技术网

Ruby on rails 为什么activerecord找不到具有空列的记录?

Ruby on rails 为什么activerecord找不到具有空列的记录?,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,因此,如果我这样做: >> 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> >>

因此,如果我这样做:

>> 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
>u=User.find(225)
=> #
>>美国数据
=>零

所以我显然没有facebook的数据。当我使用where子句时,为什么没有出现这个记录?

好的,那么,为了弄清这个问题,我进入了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不同意。好的,那么,为了弄清这个问题,我进入了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将“--”识别为空,但mysql不同意。

您是否尝试过
User。where(:facebook\u data=>nil)
?是的,我得到了相同的结果——我需要能够得到相反的结果,因此我为什么要做的是空的,我还需要做的不是空的。。。所以,如果我这样做:User.where(“facebook_数据不为null”).map{u|u if u.facebook_data.nil?}.compact——那么我得到了我的用户!!!所以严重的是,这里有些东西完全坏了。你试过
用户了吗。where(:facebook_data=>nil)
?是的,我得到了相同的结果——我需要能够得到相反的结果,因此我为什么要做的是空的,我还需要做的是不空的。。。所以,如果我这样做:User.where(“facebook_数据不为null”).map{u|u if u.facebook_data.nil?}.compact——那么我得到了我的用户!!!所以严重的是,这里有些东西完全坏了。我怀疑你正在序列化你的
facebook\u数据(
column:)我怀疑你正在序列化你的
facebook\u数据(
column:)