2011-06-22 10 views
1

12/31/11(月/日/年)や31/12/11(日/月)などさまざまな形式で日付を入力できるRORアプリケーションを構築しようとしています。 /年)。日付の形式を解釈するために、ユーザーが日付の形式を選択できる場所から選択フィールドがあります。レコードを保存する前にコントローラにDate.strptime(value, format).to_s()を使用することができます。RORのさまざまな日付形式の処理

しかし、この情報を入力するためのコントローラの正しい場所はわかりません。これをモデルにプッシュできる方法はありますか?メソッドを保存する前に実行します。

答えて

0

データをそのまま(コントローラー内に)保存し、モデル内にデータの解釈方法を示す別のフィールドを置くこともできます。次に、before_validationコールバックでは、指定された書式に従って日付を解析し、同じフィールドに日付として書き込むことができます。途中で問題が発生する可能性があります。その後、ビューに再度表示するには、ヘルパーを作成することができますが、日付を計算して表示するモデル内のメソッド(formatted_dateなど)を提供する方が便利です。

しかし、この要件は奇妙に聞こえます。日付形式を選択するユーザーの責任は何故ですか?それはユーザーのロケールに基づいているべきではありませんか?

いずれの場合でも、アプリケーション全体で書式文字列を返すのではなく、イニシャライザに日付書式を登録することをお勧めします。

関連する問題