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

Mat*_*man 18 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 %>
Run Code Online (Sandbox Code Playgroud)

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

谢谢

rdv*_*ijk 41

一个技巧是使用try.

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

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

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