为什么ActiveRecord有这种特质?

时间:2011-04-19 22:11:32

标签: ruby-on-rails database activerecord

以下查询引发异常:

User.find(4)

以下查询返回nil:

User.find(:first, :conditions => "id = 4")

当找不到记录或是否引发异常时,数据库包装器通常会返回'nil'或'null'等吗?添加'first'关键字有什么特别之处吗?这种预期的行为还是铁轨魔术失败了?

1 个答案:

答案 0 :(得分:3)

这样想:

在第一个示例中,您告诉Active Record在ID表中找到ID为4的用户表中的记录,并且必须存在。

在第二个例子中,你将走很长的路并告诉它“请搜索id属性等于4的记录,如果有,则返回第一个”。这就是为什么它不会返回任何东西。

更简单的方法是使用find_by_id