4

アプリの表示時間をローカル タイムゾーンにする必要があります。ローカルでは、application.rb で Time.zone = "Athens" を使用していますが、正常に動作します。

Heroku の場合、「heroku config:add TZ=Europe/Athens」を使用しました。これは、コマンド ラインから実行するすべての操作で正常に機能しますが、アプリには適用されません。

例えば

heroku 実行日:dateターミナルに接続された実行中... up, run.4786 Tue Apr 23 15:13:51 EEST 2013

heroku 実行コンソール:

Order.last.created_at => 2013 年 4 月 23 日火曜日 13:15:53 EEST +03:00

Time.zone => (GMT+02:00) アテネ

しかし、私はこれをレールビューに入れました: <%= Time.zone %> そして、私はこれを取得します: (GMT+00:00) UTC そして、私の時間は実際のアプリでは UTC 時間で表示されます。

では、(コンソールだけでなく) heroku の実際の Rails アプリケーションにタイムゾーンを適用するにはどうすればよいでしょうか。

4

3 に答える 3

10

次のように、application.rb でタイムゾーンを設定してみてください。

config.time_zone = 'Athens'
config.active_record.default_timezone = :local

config.active_record.default_timezone は、データベースから日付と時刻を取得するときに、Time.local (:local に設定されている場合) または Time.utc (:utc に設定されている場合) のどちらを使用するかを決定します。Rails のデフォルトは :utc ですが、Rails の外部で使用する場合、Active Record のデフォルトは :local です。

から: http://guides.rubyonrails.org/configuring.html#configuring-active-record

于 2013-04-24T21:05:49.430 に答える
0

ここapplication.rbで説明されているようにタイムゾーンを設定してみましたか?

 config.time_zone = 'Eastern Time (US & Canada)'
 config.active_record.default_timezone = 'Eastern Time (US & Canada)'
于 2013-04-23T14:16:33.877 に答える