2017-11-11 1 views
0

私はRails 5を持っており、ユーザーは異なる国で予約することができます。現在、私のデータベースはすべての日付をUTCに格納しており、RailsアプリケーションはAmerica/Sao_Pauloに設定されています。いくつかのタイムゾーンの予約で動作するRails 5アプリ

誰かが14:00の予定を予約している場合、アプリはこれをSao_Pauloと解釈してUTCに変換します。どこかに表示するために日付を読むと、Railsはそれを自動的にSao_Pauloに戻します。まったく手間がかかりません。

しかし今、誰かがドイツでアポイントメントを予約している場合、私は入力を受けてそれをドイツ/ベルリンに解析する必要があると思います。 RailsはUTCとして保存し、タイムゾーンを格納するために追加の列を作成する必要があります。そして、どこかで時刻を表示したいときに手動でベルリンに戻す必要があります。

これは正しいですか?私はこの全体の話題がかなり混乱しているのを発見します。 私にはこれをすべて扱う宝石はありますか?

+1

誰かがドイツでアポイントを予約していると言ったら、その人がドイツにいるのか、ドイツに在住しているのですか?人と予定は異なるタイムゾーンにあるのでしょうか?私は、その人の現地時間ではなく、予定の場所のタイムゾーンで時間を表示したいと思いますか? – EJ2015

答えて

1

私はこの要件のための宝石はないと思います。

これは私のプロジェクトで手動で処理しました。私は時間を選択している間、ユーザーにタイムゾーンを選択するオプションを与えました。 バックエンドでは、保存中にUTCで時刻を変換できます。

ユーザーのためにできることは、ユーザーのシステムのTimeZoneを使用してドキュメントを読み込んだ後で、TimeZoneのデフォルト値を設定するJSコードを書くことです。

私のサイトでこのサンプルを確認することができますShuriken Live。サインアップしてLive Polling Pluginに行き、テンプレートを選択してください。その投稿を予定しています。私は自分のサイトで同じ方法を使用しています。

+0

ユーザーは実際に国を選択するので、変換するタイムゾーンを知っています。 – almo

+0

私は約1-2ヶ月前に検索しようとしたときに宝石を見つけられませんでした。だから自分でコードを書くことになった。私はまた、時間関連のフィールドを非常に刺激的に管理することがわかりました。 –

+0

情報をありがとう...タイムゾーンで新しい列を作成し、解析や読み込み時に手動で時間を変換しましたか? – almo

関連する問題