Arc*_*lye 6 null activerecord ruby-on-rails
不应该Rails find_by_方法返回一个空数组而不是nil?
没有与find_by_条件匹配的记录是正常的,但返回nil没有意义.因为在我看来,错误是由合理的代码引起的,例如:
<% for thing in @thing_that_might_be_an_array_or_might_be_nil do %>
Run Code Online (Sandbox Code Playgroud)
由于find_by_总是返回一个数组,即使只有1条记录,如果有0条记录,它也应该返回一个数组.然后是所有这些
<% @thing.each
Run Code Online (Sandbox Code Playgroud)
和
<% for thing in @thing
Run Code Online (Sandbox Code Playgroud)
在我们的观点中,我们会悄悄地过去,而不是造成"我们很抱歉,但出了点问题." (或者我错过了什么?目前解决这个问题的最佳做法是什么?)
find_by_ 用于查找一条记录,第一条符合您条件的记录.
find_all_by_ 用于查找符合条件的一组记录,一个数组.
所以,是的,我认为find_by_返回nil 是完全正常的,而不是空数组,当它找不到任何东西时,因为你只需要一件事.
| 归档时间: |
|
| 查看次数: |
2233 次 |
| 最近记录: |