(Ruby MRI 1.9.2でRails 3.2.3を使用しています)Rails:データベースがUTC、Time.zone米国東部の場合、米国太平洋で時間を節約するにはどうすればよいですか?
すべてがUTCで中央に格納されています。これはいい。各ユーザーには「タイムゾーン」プロパティがあります。私のApplicationControllerには、ユーザの保存されたタイムゾーンにTime.zoneを調整するためのbeforeフィルタがあります。これも良いことです。
上記を踏まえて、私のUserが時間を使ってdatetimeを選択すると、その時間はTime.zoneになると予想され、Railsはこれを自動的に調整してUTCとして保存します。これも、良いです。
今すぐ:の時間を別のタイムゾーンに記入して、それをUTCとして保存することができます。しかし、Railsは(以前はApplicationControllerによって設定された)Time.zoneに記入された完了日時選択を期待しています。したがって、レールはUTC に正しく調整されます。
第3のタイムゾーンに入力された時間を保存する目標をどのように達成できますか?
イラスト:
私の使用シナリオは、西海岸のホテルに属する文書の日付を調整フロリダでのユーザーです。彼らは西海岸のための時間を入力しようとしています。
私はスタイルのピッカーとスタイルのテキストボックスへのjQueryを使用していますので、私は、出力する方法にテキストボックスに文字列を持っている:これは完璧に働いている
<%= f.text_field(:created_at, :value => adjusted_to_hotel_time(@document.created_at), :class => 'text datetime_picker') %>
def adjusted_to_hotel_time(time)
time.in_time_zone(@current_hotel.timezone).to_s(:admin_jquery) # formatted for the jQuery datetime_picker text fields.
end
が、Railsが間違ってUTCに調整@documentが保存されたとき。私は自分が知らないものを知らないのですが、そのフィールドに入力されたデータを@ current_hotel.timezoneに「タグ付け」すれば、親オブジェクトを保存するときにRailsがUTCに正しくオフセットされますか?
私はこれに関するQ&Aの不足を理解していない...私はこれを探して時間を費やした...確かにこれは一般的です???それとも文字通り、あなたはあなたがレールの外に出ていくクロスジオスにスケールしますか?うーん...これをやってくれてありがとう! – james
うれしかった! – Daniel