使用find
方法时,Rails总是会引发ActiveRecord::RecordNotFound异常.然而,当没有找到记录时,find_by_*
个方法返回nil
个.
ActiveRecord documentation告诉我们:
RecordNotFound-没有记录响应find方法.要么
如果您想在找不到记录时返回nil
,只需按如下方式处理异常:
begin
my_record = Record.find params[:id]
rescue ActiveRecord::RecordNotFound => e
my_record = nil
end