2013-01-04 21 views
3

我有一些rails應用程序和一些視圖,如果視圖是數組不包含任何數據,我想顯示不同的東西。目前,我的看法是這樣的:在Rails中檢查包含視圖的數組

<% @trips.each do |trip| %> 
    <p><%= trip.id %> | <%= trip.name %></p> 
<% end %> 

但是,有沒有辦法,我可以表現出一些不同的文本,如果這沒有內部@trips什麼?

回答

1

您可以使用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 %> 
+0

感謝JW8哪個更適合使用什麼時候?感謝您花時間回覆! – calabi

+0

@davessh,它們是等價的 - 空白?更簡潔一些,並且使用了一個Ruby成語,而第一種方法是用其他語言進行類似的檢查。 – JW8

1

肯定,只是如果有使用,這樣

<% if @trips.blank? %> 
    <p>No trips</p> 
<% else %> 
    <% @trips.each do |trip| %> 
    <p><%= trip.id %> | <%= trip.name %></p> 
    <% end %> 
<% end %> 
7

如果使用諧音:

車次/ _trip.html

<p><%= trip.id %> | <%= trip.name %></p> 

視圖

<%= render @trips || 'No trip' %> 
1

使用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框架或項目,那麼你可以用上面的,如果檢查/其他代碼,如果一個數組爲零或爲空

+0

'@ trips.nil? || @ trips.empty?'可以寫成'@ trips.blank?',就像在ewiinnnnn回答 – Baldrick

+0

非常真實我沒有看到他的反應,直到我發佈我的,我會編輯 – Egryan