0
クライアントは実際には特定の日に3つの異なるタイムスロットでイベントをスケジュールするため、イベントコントローラではクイック追加アクションがあります。日時はデフォルトのフォームでうまくいきますが、手で値を設定しようとすると問題が発生します。Rails Timeオブジェクト
def quick_add #params are date like 2012-04-29, timeslot is a string
timeslot = params[:timeslot].to_sym
date = params[:date].to_date
@workout = Workout.new do |w|
w.name = 'Workout!'
w.date = date
case timeslot
when :morning
w.time = Time.local(w.date.year, w.date.month, w.date.day, 6)
when :noon
w.time = Time.local(w.date.year, w.date.month, w.date.day, 12)
when :evening
w.time = Time.local(w.date.year, w.date.month, w.date.day, 18, 15)
else
w.time = Time.now
end
end
イベントが作成取得され、日付が正しいですが、時間は以下のとおりです。
Morning: 2000-01-01 10:00:00 UTC
Expected: 2012-05-02 06:00:00 UTC -400
Noon: 2000-01-01 16:00:00 UTC
Expected: 2012-05-02 12:00:00 UTC -400
Evening: 2000-01-01 22:15:00 UTC
Expected: 2012-05-02 18:15:00 UTC -400
それはレールコンソールでコマンドを実行すると、私が期待する結果を得るように見えることは注目に値します。
あなたの文章に間違いがありますか?「イベントは作成されていますが、日付は正しいですが時刻は:」ですか?日付が間違っています。時刻は正しいです。 –
おそらく 'params [:date] .to_data'はあなたに期待した結果を与えていませんか? 'params [:date]'が正しいことを確認するために、要求パラメータをチェックしてください。 –
私は正しく動作している別のフィールドに日付を格納しています。時間の対象は何かに問題がある – DVG