不应该Rails find_by_方法返回一个空数组而不是nil?

时间:2011-09-14 04:44:50

标签: ruby-on-rails activerecord null

不应该Rails find_by_方法返回一个空数组而不是nil?

没有与find_by_条件匹配的记录是正常的,但返回nil没有意义。因为在我看来,错误是由合理的代码引起的,如:

<% for thing in @thing_that_might_be_an_array_or_might_be_nil do %>

由于find_by_总是返回一个数组,即使只有1条记录,如果有0条记录,它也应该返回一个数组。那么所有那些

<% @thing.each

<% for thing in @thing

在我们的观点中会悄悄地过去,而不是导致“我们很抱歉,但是出了点问题。”(或者我错过了什么?目前最好的做法是什么? ?)

1 个答案:

答案 0 :(得分:6)

find_by_用于查找一条记录,第一条符合您条件的记录。

find_all_by_用于查找符合条件的一组记录,数组。

所以,是的,我认为find_by_返回nil是完全正常的,而不是空数组,当它找不到任何东西时,因为你只需要一件事。