2011-09-14 21 views
6

不應該Rails find_by_方法返回一個空數組而不是nil?不應該Rails find_by_方法返回一個空數組而不是零?

沒有匹配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

而在Rails 4中,所有這些都是沒有意義的。 – Arcolye

回答

6

find_by_用於查找一條記錄,第一條記錄符合您的條件。

find_all_by_用於查找符合條件的一組記錄,一個數組。

所以,是的,我認爲find_by_返回nil是完全正常的,而不是空數組,因爲它只是要求一件事。

+0

find_all_by_ ... – Arcolye

相關問題