ユーザーのタイムゾーンをアプリケーションの現在のタイムゾーンにして、ユーザーがやり取りするすべてのものがそれによって行われるようにしようとしています。ArgumentError
しかし、ApplicationController内のメソッドに遭遇しました。
application_controller.rb
before_filter :set_user_time_zone
private
def set_user_time_zone
if signed_in?
Time.zone = Time.now.in_time_zone(current_user.time_zone)
end
end
注:current_userはDevise Helper:time_zone
であり、列としての私のUserモデルです。
エラーより:
invalid argument to TimeZone[]: Mon, 20 Aug 2012 13:16:20 JST +09:00
ここからどこへ行けばいいのかわからない。これを修正する方法について何かアイデアはありますか?
ありがとう。
アップデート
class Price
attr_accessible :date
def self.today
where(:date => Date.today)
end
end
私の方法がそうなら:
def set_user_time_zone
if signed_in?
Time.zone = current_user.time_zone
end
end
私が抱えている問題は次のようなものです。
Time.now = US EAST- 2012-08-22 21:17:03 -0400
Time.zone = TOKYO - (GMT+09:00) Tokyo
Time.zone.now 2012-08-23 10:17:03 +0900
つまり、私のすべてのDate
方法は
Time.now = US EAST- 2012-08-22 21:17:03 -0400
いつあるべきか
Time.zone.now 2012-08-23 10:17:03 +0900
どうすれば後者に到達できますか?