我有一些rails應用程序和一些視圖,如果視圖是數組不包含任何數據,我想顯示不同的東西。目前,我的看法是這樣的:在Rails中檢查包含視圖的數組
<% @trips.each do |trip| %>
<p><%= trip.id %> | <%= trip.name %></p>
<% end %>
但是,有沒有辦法,我可以表現出一些不同的文本,如果這沒有內部@trips
什麼?
我有一些rails應用程序和一些視圖,如果視圖是數組不包含任何數據,我想顯示不同的東西。目前,我的看法是這樣的:在Rails中檢查包含視圖的數組
<% @trips.each do |trip| %>
<p><%= trip.id %> | <%= trip.name %></p>
<% end %>
但是,有沒有辦法,我可以表現出一些不同的文本,如果這沒有內部@trips
什麼?
您可以使用if/else條件檢查:
<% if (@trips != nil) then %>
<p><%= trip.id %> | <%= trip.name %></p>
<% else %>
<p>Some message</p>
<% end %>
或
<% if (@trips.blank?) then %>
<p>Some message</p>
<% else %>
<p><%= trip.id %> | <%= trip.name %></p>
<% end %>
肯定,只是如果有使用,這樣
<% if @trips.blank? %>
<p>No trips</p>
<% else %>
<% @trips.each do |trip| %>
<p><%= trip.id %> | <%= trip.name %></p>
<% end %>
<% end %>
如果使用諧音:
車次/ _trip.html
<p><%= trip.id %> | <%= trip.name %></p>
視圖
<%= render @trips || 'No trip' %>
使用if語句,並檢查它是否爲null或空這樣
<% if @trips.nil? || @trips.empty? %>
<p>There are no trips</p>
<% else %>
<% @trips.each do |trip| %>
<p><%= trip.id %> | <%= trip.name %></p>
<% end %>
<% end %>
編輯
如果你可能會想要去@ trips.blank?如果工作withing軌你決定另一個Ruby框架或項目,那麼你可以用上面的,如果檢查/其他代碼,如果一個數組爲零或爲空
感謝JW8哪個更適合使用什麼時候?感謝您花時間回覆! – calabi
@davessh,它們是等價的 - 空白?更簡潔一些,並且使用了一個Ruby成語,而第一種方法是用其他語言進行類似的檢查。 – JW8