所以我的数据库中有一个带有日期字段的对象,但有时它会为零。视图中有没有办法可以将其显示为字符串值。可能是 TBA 之类的东西?
问问题
46 次
1 回答
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 目的)——这真的很容易。
于 2012-04-18T14:14:05.223 回答