在nil对象上使用strftime - 如何防止错误?

时间:2011-10-09 21:26:10

标签: ruby-on-rails strftime

我使用strftime将原始时间格式化为输入框的文本。通常,当我使用strftime时,我检查对象是否为nil以防止错误,除非使用nil?但是,似乎我不能在这里使用它:

<%= text_field_tag :event_date, @event.event_date.strftime("%m/%d/%Y at %I:%M%p"), :size=>30 %>

我删除了除非因为它引发了错误。如果@ event.event_date为nil,我如何确保此语句有效?

由于

1 个答案:

答案 0 :(得分:41)

一个技巧是使用try

<%= text_field_tag :event_date, @event.event_date.try(:strftime, "%m/%d/%Y at %I:%M%p"), :size=>30 %>

或者只是检查是否设置了event_date

<%= text_field_tag :event_date, (@event.event_date && @event.event_date.strftime("%m/%d/%Y at %I:%M%p")), :size=>30 %>