Как эффективно проверить, передано ли значение представлению ноль или пусто
У меня есть следующий код в моем файле application.erb:
<%= hidden_div_if(@cart.line_items.empty?, :id => "cart") do %>
Это работает нормально, если я не загружаю страницу, которая не получает объект @ cart.line_items, когда я получаю следующую ошибку:
undefined method `line_items' for nil:NilClass
Как мне переписать строку из моего .erb
файл, чтобы он вел себя так же, если @cart.line_items
пусто, и если @cart
это ноль?
Основываясь на ответах ниже, я изменил свой код для использования:
<%= hidden_div_if(!@cart.nil? && @cart.line_items.empty?, :id => "cart") do %>
* Обновлено в соответствии с комментарием, добавленным Болдриком к этому вопросу (поскольку он более краткий, чем мое первоначальное редактирование).
3 ответа
Использование @cart.blank?
проверить, является ли он нулевым или пустым. blank?
Метод является продолжением рельсов.
Использование blank?
метод класса объекта.
Объект пуст, если он ложный, пустой или строка пробела. Например, "", " ", nil, [] и {} не заполнены. Например
[].blank? #true
"".blank? #true
" ".blank? #true
false.blank? #true
{}.blank? #true
nil.blank? #true
<%= hidden_div_if(@cart.to_a.line_items.empty?, :id => "cart") do %>