Подтвердить что ты не робот

Использование strftime на объекте nil - как предотвратить ошибку?

Я использую 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?

Спасибо

4b9b3361

Ответ 1

Один трюк заключается в использовании 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 %>