我的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 %>
*更新以匹配鲍德里克添加到此问题的评论(因为它比我的原始编辑更简洁)。
使用 @cart.blank?
检查它是 nil 还是空。blank?
方法是轨道扩展。
使用 Object 类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 %>