Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Rails:确保datetime使用系统时间_Ruby On Rails 3_Datetime_Timezone - Fatal编程技术网

Ruby on rails 3 Rails:确保datetime使用系统时间

Ruby on rails 3 Rails:确保datetime使用系统时间,ruby-on-rails-3,datetime,timezone,Ruby On Rails 3,Datetime,Timezone,在我们的rails应用程序中,时区在我们的环境文件中设置为UTC。在生产或临时服务器上运行时,这不会导致任何问题。但是,我们的本地开发机器在系统时钟中没有设置为UTC,这导致在比较日期时出现一些测试失败。这是因为Rails在调用DateTime.now时使用UTC,而MySQL数据库使用的是系统时间(在我的例子中是CST) 是否有办法确保在某些情况下,DateTime.now不使用UTC时区?我想我想要的是一种纯SQL的更新日期字段的方法,它绕过了Rails引擎。实际上,您应该能够告诉Rails

在我们的rails应用程序中,时区在我们的环境文件中设置为UTC。在生产或临时服务器上运行时,这不会导致任何问题。但是,我们的本地开发机器在系统时钟中没有设置为UTC,这导致在比较日期时出现一些测试失败。这是因为Rails在调用
DateTime.now
时使用UTC,而MySQL数据库使用的是系统时间(在我的例子中是CST)


是否有办法确保在某些情况下,
DateTime.now
不使用UTC时区?我想我想要的是一种纯SQL的更新日期字段的方法,它绕过了Rails引擎。

实际上,您应该能够告诉Rails仅在
开发
和其他环境(如
测试
)中使用本地设置,方法是将其添加到相应的
配置/环境
文件中:

config.time_zone = "Eastern Time (US & Canada)" #Change this
config.active_record.time_zone_aware_attributes = false
config.active_record.default_timezone = :local

这对我来说很管用,但我把包括制作在内的一切都转到了当地时间。但我不知道;我不明白为什么这种方法在每个环境下都不起作用

这种方法唯一的问题是,我们的开发团队在不同的时区中分散,我们必须找到一种方法,防止git每次提交时都覆盖环境文件。有趣的。。。我将使用config/initializers中定义常量的文件,即.gitignore。不确定是否可以从config/environment访问初始值设定项中定义的常量。。。取决于首先加载的是哪个