【发布时间】:2012-08-20 10:49:50
【问题描述】:
我正在尝试让我的用户时区成为我的应用程序的当前时区,以便他们交互的所有内容都将由它进行。不过,我在 ApplicationController 中的方法遇到了 ArgumentError。
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,我的 User 模型是 :time_zone 列。
比错误:
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
我怎样才能把它交给后者?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3