2011-10-09 1 views
14

私は生の時間を入力ボックスのテキストとしてフォーマットするためにstrftimeを使います。通常、strftimeを使用すると、オブジェクトがnilでなければエラーを防ぐためにnilであるかどうかをチェックします。しかし、私はここでそれを使用できるようには思えません。strftimeをnilオブジェクトに使用する - エラーを防ぐには?

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

エラーが発生していない限り、私は削除しませんでした。 @ event.event_dateがnilの場合、このステートメントが機能することを確認するにはどうすればよいですか?

おかげ

答えて

35

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 %> 
+0

最初のものは見事に働きました。ありがとうございました。 –

+0

素晴らしい! – rdvdijk

+0

これは '.blank 'の良い候補になりますか?私は最近いくつかのフォームで作業していて、便利です。 (空の文字列とnilがチェックされているので) – Tass

関連する問題