Я работаю с Rails какое-то время, и одна вещь, которую я постоянно нахожу, это проверить, не обнаружен ли какой-либо атрибут или объект в моем коде просмотра, прежде чем я его покажу , Я начинаю задаваться вопросом, всегда ли это лучшая идея.Проверка на наличие nil в Ruby on Rails
Мое обоснование до сих пор заключалось в том, что, поскольку мое приложение (ы) полагаются на ввод пользователя, могут возникнуть непредвиденные ситуации. Если я вообще научился программировать, то, что пользователи, вводящие вещи, о которых программист не думал, являются одним из самых больших источников ошибок во время выполнения. Проверяя значения nil, я надеялся обойти это, и мои взгляды изящно справляются с этой проблемой.
Дело в том, что, как правило, по разным причинам имеют аналогичные ошибки nil или invalid в моей модели или коде контроллера. Я бы не назвал это дублированием кода в строгом смысле слова, но он просто не кажется очень сухим. Если я уже проверил для nil объектов в моем контроллере, это нормально, если мой взгляд предполагает, что объект действительно не нуль? Для атрибутов, которые могут быть ноль, которые отображаются, имеет смысл проверять каждый раз, но для самих объектов я не уверен, что такое лучшая практика.
Вот упрощенный, но типичный пример того, что я говорю о:
кода контроллер
def show
@item = Item.find_by_id(params[:id])
@folders = Folder.find(:all, :order => 'display_order')
if @item == nil or @item.folder == nil
redirect_to(root_url) and return
end
end
вид кода
<% if @item != nil %>
display the item's attributes here
<% if @item.folder != nil %>
<%= link_to @item.folder.name, folder_path(@item.folder) %>
<% end %>
<% else %>
Oops! Looks like something went horribly wrong!
<% end %>
Является ли это хорошая идея или это просто глупо?