#ruby-on-rails #strftime
#ruby-on-rails #strftime
Вопрос:
Я использую strftime для форматирования моего необработанного времени в виде текста поля ввода. Обычно, когда я использую strftime, я проверяю, равен ли объект нулю, чтобы предотвратить ошибки, используя, если nil ? Однако, похоже, я не могу использовать это здесь:
<%= text_field_tag :event_date, @event.event_date.strftime("%m/%d/%Y at %I:%M%p"), :size=>30 %>
Я удалил исключение, потому что оно выдавало ошибку. Как я могу убедиться, что это утверждение работает, если @event.event_date равно нулю?
Спасибо
Ответ №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 amp;amp; @event.event_date.strftime("%m/%d/%Y at %I:%M%p")), :size=>30 %>
Комментарии:
1. Будет ли это также хорошим кандидатом для
.blank?
я недавно работал в некоторых формах, и это пригодилось. (Поскольку он проверяет наличие пустой строки и nil.)2. или, если вы хотите использовать форматы даты rails: @event.event_date.try(:to_formatted_s, :long)