Lea*_*RoR 5 ruby ruby-on-rails ruby-on-rails-3
我正在尝试让我的用户时区成为我的应用程序的当前时区,所以他们互动的一切都将由它完成.我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
Run Code Online (Sandbox Code Playgroud)
注意:current_user是一个Devise Helper,我的User模型是一个:time_zone列.
比错误:
invalid argument to TimeZone[]: Mon, 20 Aug 2012 13:16:20 JST +09:00
Run Code Online (Sandbox Code Playgroud)
我不知道从哪里开始.有关如何纠正此问题的任何想法?
谢谢.
UPDATE
class Price
attr_accessible :date
def self.today
where(:date => Date.today)
end
end
Run Code Online (Sandbox Code Playgroud)
如果我的方法:
def set_user_time_zone
if signed_in?
Time.zone = current_user.time_zone
end
end
Run Code Online (Sandbox Code Playgroud)
我有我的时代的问题是这样的:
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
Run Code Online (Sandbox Code Playgroud)
这意味着我的所有Date方法都会消失
Time.now = US EAST- 2012-08-22 21:17:03 -0400
什么时候应该
Time.zone.now 2012-08-23 10:17:03 +0900
Run Code Online (Sandbox Code Playgroud)
怎么才能把它送到后者?
Time.now.in_time_zone(current_user.time_zone)返回TimeWithZone类的实例,但Time#zone=希望得到可以转换为TimeZone.
假设您将TimeZone标识符存储在:time_zone列中(\xe2\x80\x9c东部时间(美国和加拿大)\xe2\x80\x9d、“夏威夷”等),您可以简单地执行以下操作
Time.zone = current_user.time_zone\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3633 次 |
| 最近记录: |