在我看來,我正在測試以查看是否存在某些記錄。如果他們這樣做,我遍歷它們並顯示每一個。但是,如果這些記錄不存在,我想要顯示一條消息。這裏是我的觀點代碼:忽略其他語句
<% if current_user.lineups %>
<% for lineup in current_user.lineups do %>
<li><%= link_to "#{lineup.course.cl} #{lineup.course.cn}", index_path %></li>
<% end %>
<% else %>
<li><%= link_to "You have no courses", index_path %></li>
<% end %>
現在,迭代工作很好,當記錄存在。每當我創建正確的記錄時,這段代碼都會非常好地工作,併爲迭代的每條記錄創建一個鏈接。但是,如果沒有記錄存在,則不顯示任何內容。 'else'語句完全被忽略。我試圖修改'如果'的臺,但無濟於事。我想:
<% unless current_user.lineups.nil? %>
除了:
<% if !(current_user.lineups.nil?) %>
我在我的智慧在這裏結束。任何和所有的輸入將不勝感激。
'else'被忽略的原因是'lineups'是一個空數組,而空數組是* thruthy *。換句話說,它永遠不會到達'else',因爲'if []'評估爲'true'。以下任一答案都可以解決您的問題。 – Mischa 2012-08-06 09:32:13