Как эффективно проверить, передано ли значение представлению ноль или пусто

У меня есть следующий код в моем файле 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 %>
Другие вопросы по тегам