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?レール拡張です。

于 2012-12-07T13:57:26.880 に答える
1

blank?Object クラスのメソッドを使用します。

false、空、または空白文字列の場合、オブジェクトは空白です。たとえば、""、" "、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 に答える