所以我的数据库中有一个带有日期字段的对象,除非有时它会是零。在视图中是否有一种方法可以将其显示为字符串值。像TBA这样的东西可能吗?
答案 0 :(得分:6)
<%= @event.date || "TBA" %>
应该这样做。
回应你的评论,是的,你可以在模型中做到这一点,但这是一个坏主意。为什么呢?
首先,它是关于数据的呈现,因此它属于视图。
其次,它可能会破坏事物。如果您在模型中执行此操作,@event.date
有时会返回日期,有时会返回字符串。如果您致电@event.date.hour
和date
,"TBA"
会发生什么?你会收到一个错误。唯一的解决方法是到处检查它,这将是可怕的。
如果你真的要做很多事情,你可以在application_helper.rb
中创建一个看起来像这样的辅助方法:
def date_or_tba(date)
date || "TBA"
end
所以你可以在你的观点中写一下:
<%= date_or_tba @event.date %>
键入的次数并不少,但是将字符串“TBA”的使用限制在一个地方也具有不可忽视的优势 - 这意味着如果您需要更改它(例如,用于I18n目的) - 它是真的很容易