3

タイムゾーンが異なるイベントあります。

編集時に、そのイベントのタイムゾーンで時刻と日付を表示したいと思います。

ただし、editを押すと、datetime_select常にユーザーのタイムゾーンの時間が表示されます (イベントの時間とは対照的に)。

例:

  • アムステルダムで午前 10 時に開始するイベント (GMT+1)
  • ロンドン (GMT+0) として構成されたユーザーのタイムゾーン

結果:編集時に、イベント時間が誤って午前 9 時にプリセットされます。

コードスニペット:

def edit
  Time.zone = @event.time_zone
  @event.beginn = @event.beginn.in_time_zone
  @event.endd = @event.endd.in_time_zone

  # [...]
end

@event.time_zoneには目的のタイム ゾーンが含まれていることに注意してください(上記の例では "Amsterdam")。

datetime_select編集時にそれぞれのゾーンのイベント時間にプリセットするにはどうすればよいですか?

4

1 に答える 1

1

バグ レポートのスレッドでpixeltrix指摘したように、問題の属性のリーダー/ゲッターを次のようにオーバーライドする方がクリーンです。

# in event model

def beginn
  super.in_time_zone(time_zone) if super
end

def endd
    super.in_time_zone(time_zone) if super
end

このようにして、質問で概説されている編集アクションのロジックを省略でき、 Time.zoneに依存する他の部分との干渉を回避できます。

于 2013-03-09T02:04:50.050 に答える