我想在Rails視圖中格式化日期。Rails格式無日期
<td><%= l order.ship_date, :format => :long %></td>
如果日期是零這不起作用:
Object must be a Date, DateTime or Time object. nil given.
什麼是最好的 「導軌」 的解決方案?
我想在Rails視圖中格式化日期。Rails格式無日期
<td><%= l order.ship_date, :format => :long %></td>
如果日期是零這不起作用:
Object must be a Date, DateTime or Time object. nil given.
什麼是最好的 「導軌」 的解決方案?
只需添加一個故障安全如果對象是零:
<td><%= l(order.ship_date, :format => :long) if order.ship_date %></td>
如果你想在情況下顯示的東西是零:
<td><%= order.ship_date ? l(order.ship_date, :format => :long) : "Some text" %></td>
三個選項:
1)確保你永遠不會有一個無約會。取決於您嘗試創建的產品,但在很多情況下,顯示無效日期是沒有意義的。如果對於您的產品,無日期是合理的,這是行不通的。
2)無處不在寫視圖代碼隱藏零:
<%= order.ship_date ? l(order.ship_date, :format => :long) : 'Date unavailable' %>
3)寫一個輔助函數爲你做這一點:
def display_date(date, message='Date unavailable')
date ? l(date, :format => :long) : message
end
然後你在每個地方做你想這個日期治療是說:
<%= display_date(order.ship_date) %>
我真的很喜歡幫手方法,它更短,尤其是當你有一個有很多日期的應用程序。 – counterbeing
在我的情況,我使用'text_field'和故障安全工作正常。謝謝!結果是:'<%= f.text_field:due_date,:value =>(l(order.due_date)if order.due_date.present?)%>' –