我在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 %>
*已更新以匹配Baldrick添加到此问题的评论(因为它比我原来的编辑更简洁)。
答案 0 :(得分:2)
使用@cart.blank?
检查它是否为空。 blank?
方法是rails扩展。
答案 1 :(得分:1)
使用Object类的blank?
方法。
如果对象为false,空或空白字符串,则该对象为空。例如,“”,“”,nil,[]和{}为空。 例如
[].blank? #true
"".blank? #true
" ".blank? #true
false.blank? #true
{}.blank? #true
nil.blank? #true
答案 2 :(得分:0)
<%= hidden_div_if(@cart.to_a.line_items.empty?, :id => "cart") do %>