2011-10-09 9 views
14

Używam strftime do formatowania mojego nieprzetworzonego czasu jako tekst pola wprowadzania. Zwykle, gdy używam strftime, sprawdzam, czy obiekt jest zerowy, aby zapobiec błędom przez użycie, chyba że zero? Jednak nie wydaje mi się, żebym mógł go użyć tutaj:Używanie strftime na obiekcie zerowym - jak zapobiec błędowi?

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

Usunąłem chyba, że ​​spowodowało to błąd. Jak mogę się upewnić, że to polecenie działa, jeśli @ event.event_date jest zerowe?

Dzięki

Odpowiedz

35

Jeden trick jest użycie try.

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

Albo po prostu sprawdzić, czy event_date jest ustawiona:

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

Pierwszy z nich pracował znakomicie. Dziękuję Ci. –

+0

Świetnie! (nie krępuj się przyjąć tę odpowiedź) – rdvdijk

+0

Czy byłby to również dobry kandydat na '.blank?' Ostatnio pracowałem w niektórych formach i przydaje się to. (Ponieważ sprawdza pusty ciąg znaków i zero). – Tass

Powiązane problemy