时区影响rails 3应用程序



更新:

复制自以下评论:

我曾想过对每个网站访问者的IP地址使用web服务,但后来我想知道用户在跨时区的位置查看会议,因此时区必须与正在查看的会议的位置相关联,而不是用户自己当时所在的位置。我需要用户能够看到会议列表(包括时间和地点),显示的时间是实际的会议时间,但SELECT中列出会议的WHERE子句需要考虑每个会议地点的时区。


我环顾四周,发现有很多关于在rails应用程序中使用时区的问题。

例如,问题在于应用程序需要知道用户所在的时区,才能正确地对数据库运行查询,以检查未来的日期时间。

我不希望我的网站的常客需要登录才能正常工作,所以我想的是:

  • 管理员用户登录以发布特定locationdatetimeitem
  • 保存项目时,它使用location[lat,lng]调用Timezone gem来捕获locationtimezone
  • 我想我需要将这个timezone添加到与[lat,lng]datetime(rails保存为UTC)相同型号的额外字段中(https://stackoverflow.com/a/2533323)
  • 我需要我的模型将UTC datetime与其各自的timezone组合起来,这样当普通用户来到网站时,网页就会选择itemUTC+timezone datetimes将来在哪里

这听起来可能/正确吗?

如果这听起来很困惑,请在评论中说出来,如果可以的话,我会尽量把它改写得更好。

有人能为模型提供任何代码来创建一个virtual attribute(我认为),它将UTC datetimetimezone字段相结合吗?

感谢

有国家和时区的列表不是更好吗?当用户来到网站时,确定他来自哪个国家,然后尝试使用本地rails时区方法。例如,我有User和Table模型,它们创建了_at params:

Time.zone => (GMT+00:00) UTC
User.last.created_at => Mon, 25 Jun 2012 21:17:25 UTC +00:00
Table.last.created_at => Mon, 16 Jul 2012 14:08:17 UTC +00:00
Time.zone = 'Moscow' => "Moscow"
Time.zone => (GMT+04:00) Moscow
User.last.created_at => Tue, 26 Jun 2012 01:17:25 MSK +04:00
Table.last.created_at => Mon, 16 Jul 2012 18:08:17 MSK +04:00

如何确定你应该寻找宝石或一些服务的国家。我认为这将是一项服务,通过他的IP地址来确定用户的国家/地区。

相关内容

  • 没有找到相关文章

最新更新