0

アップデート:

以下のコメントからコピー:

サイトへの各訪問者の IP アドレスに対して Web サービスを使用することを考えましたが、タイムゾーンにまたがる場所で会議を見ているユーザーについて疑問に思ったので、タイムゾーンは、ユーザーの場所ではなく、表示されている会議の場所に関連付ける必要があります。自分自身がその瞬間にいます。ユーザーが会議のリスト (時間と場所を含む) を表示できるようにする必要があり、表示される時間は実際の会議時間ですが、会議を一覧表示する SELECT の WHERE 句では、各会議場所のタイムゾーンを考慮する必要があります。 .


私は周りを見回しましたが、レールアプリでタイムゾーンを使用することについて多くの質問があります.

問題は、アプリがデータベースに対してクエリを適切に実行して、たとえば将来の日時を確認できるようにするために、ユーザーがどのタイムゾーンにいるのかをアプリが知る必要があるという事実にあります。

私のサイトへの通常の訪問者が正しく機能するためにログインする必要がないようにしたいので、次のように考えています。

  • 管理者ユーザーがログインしitemて特定のlocation投稿を投稿するdatetime
  • アイテムを保存するとき、 の を使用し[lat,lng]locationを呼び出し、 のTimezone gemをキャプチャしtimezoneます。location
  • timezoneと同じモデルの追加フィールドにこれを追加する必要がある[lat,lng]と思いますdatetime(レールはとして保存しますUTC)(https://stackoverflow.com/a/2533323
  • 通常のユーザーがサイトにアクセスしたときに Web ページが将来の場所を選択するように、モデルをUTC datetimeそれぞれのモデルと組み合わせる必要があります。timezoneitemUTC+timezone datetimes

それは可能/正しいと思いますか?

混乱するように聞こえる場合は、コメントで言ってください。可能であれば、もう少しうまく言い直します.

誰かがフィールドvirtual attributeと結合する (私が思うに)UTC datetimeモデルを作成するためのコードを提供できますか?timezone

ありがとう

4

1 に答える 1

0

国とそのタイムゾーンのリストがある方がよいのではないでしょうか? ユーザーがサイトにアクセスしたら、国を特定し、ネイティブのレール タイムゾーン メソッドを使用しようとします。たとえば、created_at パラメータを持つ User モデルと Table モデルがあります。

Time.zone => (GMT+00:00) UTC
User.last.created_at => Mon, 25 Jun 2012 21:17:25 UTC +00:00
Table.last.created_at => Mon, 16 Jul 2012 14:08:17 UTC +00:00

Time.zone = 'Moscow' => "Moscow"
Time.zone => (GMT+04:00) Moscow

User.last.created_at => Tue, 26 Jun 2012 01:17:25 MSK +04:00
Table.last.created_at => Mon, 16 Jul 2012 18:08:17 MSK +04:00

宝石やサービスを探すべき国を決定する方法。IPアドレスからユーザーの国を判別するサービスになると思います。

于 2012-08-01T19:02:17.247 に答える