Ruby on rails 使用日期时,我可以使用nil值做什么?
因此,我的数据库中有一个带有日期字段的对象,但有时它是零。在视图中是否有一种方法可以将其显示为字符串值。像TBA这样的东西也许可以吗?Ruby on rails 使用日期时,我可以使用nil值做什么?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,因此,我的数据库中有一个带有日期字段的对象,但有时它是零。在视图中是否有一种方法可以将其显示为字符串值。像TBA这样的东西也许可以吗?应该可以 作为对您评论的回应,是的,您可以在模型中这样做,但这不是一个好主意。为什么? 首先,它是关于数据的表示,因此它属于视图 其次,它可能会破坏东西。如果在模型中执行此操作,@event.date有时返回日期,有时返回字符串。如果调用@event.date.hour并且date是“TBA”,会发生什么情况?你会得到一个错误。唯一的解决办法是到处检查,这将是可怕
应该可以
作为对您评论的回应,是的,您可以在模型中这样做,但这不是一个好主意。为什么?
首先,它是关于数据的表示,因此它属于视图
其次,它可能会破坏东西。如果在模型中执行此操作,@event.date
有时返回日期,有时返回字符串。如果调用@event.date.hour
并且date
是“TBA”
,会发生什么情况?你会得到一个错误。唯一的解决办法是到处检查,这将是可怕的
如果你真的要做很多事情,你可以在application\u helper.rb
中创建一个helper方法,看起来像这样:
def date_or_tba(date)
date || "TBA"
end
所以你可以在你的观点中写下:
<%= date_or_tba @event.date %>
这并不意味着更少的输入,但将有一个不可忽视的优势,即将字符串“TBA”的使用限制在一个地方——这意味着如果您需要更改它(例如,出于I18n的目的)——这非常容易
应该这样做
作为对您评论的回应,是的,您可以在模型中这样做,但这不是一个好主意。为什么?
首先,它是关于数据的表示,因此它属于视图
其次,它可能会破坏东西。如果在模型中执行此操作,@event.date
有时返回日期,有时返回字符串。如果调用@event.date.hour
并且date
是“TBA”
,会发生什么情况?你会得到一个错误。唯一的解决办法是到处检查,这将是可怕的
如果你真的要做很多事情,你可以在application\u helper.rb
中创建一个helper方法,看起来像这样:
def date_or_tba(date)
date || "TBA"
end
所以你可以在你的观点中写下:
<%= date_or_tba @event.date %>
这并不意味着更少的输入,但将有一个不可忽视的优势,即将字符串“TBA”的使用限制在一个地方——这意味着如果您需要更改它(例如,出于I18n的目的)——这非常容易 太棒了。这正是我想要的。在我的模型中有没有一种方法可以做到这一点,所以如果我在任何显示为“TBA”的地方调用@event.date?你可以,但我强烈建议不要这样做,因为这是关于演示的,所以应该在视图中。我会在回答中详细说明的。好吧,我现在明白为什么这是个坏主意了。添加助手似乎是一个不错的选择。谢谢令人惊叹的这正是我想要的。在我的模型中有没有一种方法可以做到这一点,所以如果我在任何显示为“TBA”的地方调用@event.date?你可以,但我强烈建议不要这样做,因为这是关于演示的,所以应该在视图中。我会在回答中详细说明的。好吧,我现在明白为什么这是个坏主意了。添加助手似乎是一个不错的选择。谢谢