2013-01-09 39 views
0

我試圖創建一個if語句,以便如果沒有找到記錄,將顯示默認消息。我目前有這樣的:rails if語句,如果沒有找到記錄

- if @n == nil || @n =="" 
    welcome 
- else 
    - @n.each do |n|  
    = n.name 
    = raw " - " 
    = n.company 

但它忽略了第一行,只是在必要時顯示記錄。

回答

1

試着查詢實例變量的空白? :

- if @n.blank? 
2
- if @n.blank? 
     welcome 
    - else 
     - @n.each do |n|  
     = n.name 
     = raw " - " 
     = n.company 
0

如果在一個方法

if @object.blank? 
#whatever you want to happen 
else 
#whatever you want to happen 

如果在一個塊

<% if @object.blank? %><%= #foo %> 
<% else %> 
<%= #bar %> 
<% end %> 
+0

這樣做的問題是,空字符串'「」'的計算結果爲truthy,這是一個什麼樣的OP期望 –

+0

感謝相反,所以空白法會在這裏工作得更好,編輯答案 – Richlewis

0

我認爲@n應該是對象的數組,而不是字符串,所以你應該檢查它是否爲空:

if @n == nil || @n == [] 

如果您使用rails(&因此activesupport).blank? (由他人建議)適用於所有這些情況下

nil.blank? #=> true 
"".blank? #=> true 
[].blank? #=> true