不应该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
在我们的观点中会悄悄地过去,而不是导致“我们很抱歉,但是出了点问题。”(或者我错过了什么?目前最好的做法是什么? ?)
答案 0 :(得分:6)
find_by_
用于查找一条记录,第一条符合您条件的记录。
find_all_by_
用于查找符合条件的一组记录,数组。
所以,是的,我认为find_by_
返回nil是完全正常的,而不是空数组,当它找不到任何东西时,因为你只需要一件事。