Rails 4 - 想拥有Rails使用我的本地时区创建了create_at&的updated_at

时间:2014-03-22 17:45:00

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

是否有办法让Rails使用created_at和update_at使用我服务器上设置的当前时区添加/更新行?

我见过很多Stack Overflow解决方案,其中人们说明了如何在带有选定时区的Rails视图中显示它。

我还发现了其他Stack Overflow解决方案,声明它应该从我的服务器获取时区并更新created_at和updated_at。至少对于我正在运行的Mac Mini Server来说,情况并非如此。我将它设置为我当地的时区。我还在config / application.rb中设置了config.time_zone = 'Central Time (US & Canada)'

我希望能够查看pgAdmin3中的原始数据库数据或某种数据库备份,并知道何时在我的时区创建了记录。

任何帮助将不胜感激。我会继续寻找。

3 个答案:

答案 0 :(得分:13)

如果要设置db时区并使用ActiveRecord,请在应用程序配置中添加以下内容:

config.active_record.default_timezone = :local

这将在数据库中使用服务器的时区。

答案 1 :(得分:5)

# application.rb:
class Application < Rails::Application
  config.time_zone = 'Eastern Time (US & Canada)'
end

Time.zone      # => #<TimeZone:0x514834...>
Time.zone.name # => "Eastern Time (US & Canada)"
Time.zone.now  # => Sun, 18 May 2008 14:30:44 EDT -04:00

请参阅以下链接&gt;&gt; http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html#method-c-5B-5D

答案 2 :(得分:1)

您还可以运行rake time:zones:all以列出Rails知道的所有时区。然后,您可以相应地更新application.rb中的设置。