0

3.5和要顯示在我的CATEGORY_ID領域的文本,而不是NULL值顯示文本,而不是NULL值

 <% if e.categories_id == "NULL" %> 
     <%= e.categories_id ="Don't have value" %> 

    <% else %> 
     <%= e.categories_id ="Has value" %> 
    <% end %> 

有人能幫助我嗎?

我已經試過

<% if e.categories_id = NULL %> 
    <% if e.categories_id == NULL %> 
    <% if e.categories_id = "NULL" %> 
    <% if e.categories_id == "NULL" %> 
+0

有你試過零或空?所以如果e.categories_id.empty? – kobaltz

+0

感謝它的工作! –

回答

1
<%= e.categories_id.nil? ? "Don't have value" : "Has value" %> 

甚至更​​好:

<%= e.categories_id ? "Has value" : "Don't have value" %> 
+0

我只會說.. LOLzz :) –

0
<%= e.categories_id || "There's no categories_id" %> 

但嚴重的是,有這麼多這是很糟糕這個問題。首先,你應該知道足夠多的Ruby知道它使用nil而不是NULL。一個名爲categories_id的外鍵建議您有一個名爲Categories的模型。型號名稱應該是單數。

0
<% if e.categories_id.blank? %> 
    <p>"Don't have value" </p> (or whatever you want displayed) 
<% else %> 
    <%= e.categories_id %> (should display the value of e.categories_id) 
<% end %> 

我更喜歡.blank? Rails用來檢查.empty的方法?和.nil?另外使用if else比Terinary運算符更具可讀性? :

0

你可以做到這一點,如果你只是想顯示「沒有價值」,如果是這樣的話:

<%= e.categories_id || "Don't have value" %> 

你可以做什麼要設置的值:

<% e.categories_id ||= "Don't have value" %> 
<%= e.categories_id %> 

如果你想改變數據的值,你不應該在視圖中這樣做。您應該在控制器中執行所有數據操作,或者更好,模型(fat model, skinny controller)。

還有一個其他問題:紅寶石null被稱爲nil。因此,對於無測試是這樣的:

if whatever == nil 
    #Do anything 
end 

什麼是關於Ruby好的是nil被視爲在一份聲明中假的,所以你可以省略== nil等你拿:

if whatever 
    #Do anything 
end