2011-09-14 16 views
6

Railsのfind_by_メソッドはnilの代わりに空の配列を返すべきですか?Railsのfind_by_メソッドはnilの代わりに空の配列を返すべきではありませんか?

通常、find_by_条件に一致するレコードは存在しませんが、nilを返すことは理にかなっていません。その後、私の見解・エラーでは、のような実用的なコードによって提起されているので:find_by_は常に1つだけのレコードがあります場合でも、配列を返すので

<% for thing in @thing_that_might_be_an_array_or_might_be_nil do %> 

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

関連する問題