以下查询引发异常:
User.find(4)
以下查询返回nil:
User.find(:first, :conditions => "id = 4")
当找不到记录或是否引发异常时,数据库包装器通常会返回'nil'或'null'等吗?添加'first'关键字有什么特别之处吗?这种预期的行为还是铁轨魔术失败了?
答案 0 :(得分:3)
这样想:
在第一个示例中,您告诉Active Record在ID表中找到ID为4的用户表中的记录,并且必须存在。
在第二个例子中,你将走很长的路并告诉它“请搜索id属性等于4的记录,如果有,则返回第一个”。这就是为什么它不会返回任何东西。
更简单的方法是使用find_by_id
。