使用日期时,我可以用零值做什么?

时间:2012-04-18 14:12:13

标签: ruby-on-rails ruby-on-rails-3

所以我的数据库中有一个带有日期字段的对象,除非有时它会是零。在视图中是否有一种方法可以将其显示为字符串值。像TBA这样的东西可能吗?

1 个答案:

答案 0 :(得分:6)

<%= @event.date || "TBA" %>应该这样做。

回应你的评论,是的,你可以在模型中做到这一点,但这是一个坏主意。为什么呢?

首先,它是关于数据的呈现,因此它属于视图。

其次,它可能会破坏事物。如果您在模型中执行此操作,@event.date有时会返回日期,有时会返回字符串。如果您致电@event.date.hourdate"TBA"会发生什么?你会收到一个错误。唯一的解决方法是到处检查它,这将是可怕的。

如果你真的要做很多事情,你可以在application_helper.rb中创建一个看起来像这样的辅助方法:

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

所以你可以在你的观点中写一下:

<%= date_or_tba @event.date %>

键入的次数并不少,但是将字符串“TBA”的使用限制在一个地方也具有不可忽视的优势 - 这意味着如果您需要更改它(例如,用于I18n目的) - 它是真的很容易