如何有效地检查传递给视图的值是 nil 还是空



我的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 %>

最新更新