2

我的 application.erb 文件中有以下代码:

<%= hidden_div_if(@cart.line_items.empty?, :id => "cart") do %>

当我收到以下错误时,除非我加载没有收到 @cart.line_items 对象的页面,否则这工作正常:

undefined method `line_items' for nil:NilClass

如果为空且如果为 nil ,如何重写.erb文件中的行以使其行为相同?@cart.line_items@cart


根据以下答案,我将代码更改为使用:

<%= hidden_div_if(!@cart.nil? && @cart.line_items.empty?, :id => "cart") do %>

*已更新以匹配 Baldrick 添加到此问题的评论(因为它比我的原始编辑更简洁)。

4

3 回答 3

2

用于@cart.blank?检查它是否为 nil 或为空。该blank?方法是rails扩展。

于 2012-12-07T13:57:26.880 回答
1

Object 类的使用blank?方法。

如果对象为假、空或空白字符串,则该对象为空。例如,“”、“”、nil、[] 和 {} 为空白。例如

 [].blank? #true
 "".blank? #true
 "       ".blank? #true
 false.blank? #true
 {}.blank? #true
 nil.blank? #true
于 2012-12-07T13:59:34.623 回答
0
<%= hidden_div_if(@cart.to_a.line_items.empty?, :id => "cart") do %>
于 2012-12-07T14:04:08.420 回答