2012-04-18 26 views
1

所以我有一個對象在我的數據庫中的日期字段,有時除外,它將爲零。有沒有在視圖中的一種方式,我可以顯示這是一個字符串值。 TBA可能是什麼?使用日期時,我可以用零值做什麼?

+0

<%= [email protected]? ? @date:「TBA」%> – 2012-04-18 17:32:52

回答

6

<%= @event.date || "TBA" %>應該這樣做。

在回答您的意見,是的,你可以這樣做的模型,但它是一個壞主意。爲什麼?

首先,它是關於數據的演示文稿,以便爲這個原因,它所屬的視圖。

其次,它可以打破的東西。如果你在模型中做過,@event.date有時會返回一個日期,有時會返回一個字符串。如果您撥打@event.date.hourdate是​​,會發生什麼情況?你會得到一個錯誤。唯一的解決辦法是到處檢查它,這將是可怕的。

如果你真的打算做了很多,你可以創建application_helper.rb一個輔助方法,可能是這個樣子:

def date_or_tba(date) 
    date || "TBA" 
end 

所以,以後就可以在您的視圖寫:

<%= date_or_tba @event.date %> 

這是不是要少得多打字但必須限制使用字符串「TBA」的只有一個地方不小的優勢 - 這意味着如果你需要改變它(I18N的目的,例如) - 這是真的很簡單。

+0

太棒了。這正是我所追求的。有沒有辦法在我的模型中做到這一點,所以如果我在任何地方調用@ event.date,它會顯示爲「TBA」? – Synthesezia 2012-04-18 14:26:24

+0

你可以,但我會強烈反對,因爲它是關於演示,所以應該在視圖中。我會詳細解釋我的答案。 – Russell 2012-04-18 14:30:28

+0

好的,我明白爲什麼現在這是一個壞主意。添加一個幫手似乎是要走的路。謝謝! – Synthesezia 2012-04-18 14:53:35

相關問題