今天早上遇到了一个问题,网站上有几个奇怪的数据,他们的用户id都是4,但是我们网站上的用户id设置的是最低 1000 并且是依次递增的,怎么回事呢
几个人共同探讨,查看程序,讨论逻辑,最后都是没有结论
接下来有人突然想起了下面这件事情
---------------------------------------------------------------------------------
前几天我在网上看文章发现了一个很有趣的问题
就是ruby对 nil.object_id 的定义
我看着挺有意思,就跟同事共享了一下
-------------------------------------------------------------------------------
再去看代码,果然是用户在没有登录的情况下做了操作,产生了 nil.id
-----------
另外还有一个小插曲
那就是开发模式与产品模式下运行nil.id 结果是不一样的
开发模式(development)下或直接抛异常
而产品模式(production)下则仅仅是警告,有返回值
真真的是陷阱无处不在啊
------------------------------------------------------------------------------
好吧,问题到此结束
除此之外令人感到很神棍的事情就是,前几天我看到了这个东西,今天竟然奇迹般的就用上了
关于nil.object_id 的帖子 其实很老的问题了,汗 :o
[url]http://www.iteye.com/topic/514383[/url]
几个人共同探讨,查看程序,讨论逻辑,最后都是没有结论
接下来有人突然想起了下面这件事情
---------------------------------------------------------------------------------
前几天我在网上看文章发现了一个很有趣的问题
就是ruby对 nil.object_id 的定义
>> nil.object_id
=> 4
我看着挺有意思,就跟同事共享了一下
-------------------------------------------------------------------------------
再去看代码,果然是用户在没有登录的情况下做了操作,产生了 nil.id
-----------
另外还有一个小插曲
那就是开发模式与产品模式下运行nil.id 结果是不一样的
开发模式(development)下或直接抛异常
>> nil.id
RuntimeError: Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
from (irb):1
而产品模式(production)下则仅仅是警告,有返回值
>> nil.id
(irb):1: warning: Object#id will be deprecated; use Object#object_id
=> 4
真真的是陷阱无处不在啊
------------------------------------------------------------------------------
好吧,问题到此结束
除此之外令人感到很神棍的事情就是,前几天我看到了这个东西,今天竟然奇迹般的就用上了
关于nil.object_id 的帖子 其实很老的问题了,汗 :o
[url]http://www.iteye.com/topic/514383[/url]