20

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

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

我删除了除非,因为它抛出了一个错误。如果@event.event_date 为零,我如何确保此语句有效?

谢谢

4

1 回答 1

43

一个技巧是使用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 %>
于 2011-10-09T21:33:38.277 回答