因此,我在Heroku上托管的PostgreSQL数据库中有一个Restaurant
表,其中有两个datetime
列:opens
和closes
代表了每个时间表餐厅。
我在Rails后端使用Rails Admin。每次我想编辑餐厅时,例如要更改餐厅的phone_number
( NB:无需触摸opens
或closes
),opens
和closes
都会在我保存了修改并获得了一个多小时。例如。如果特定餐厅的opens
为12:00,而closes
为14:00,则分别为13:00和15:00。
再次,完全不更改自己的opens
或closes
。
这可能与我的时区有关:在application.rb
中,我有这个:
# timezone
config.time_zone = 'Paris'
config.active_record.default_timezone = :local
# languages
config.i18n.default_locale = :fr
如何避免日期时间更新?
编辑:
使用的版本:
答案 0 :(得分:1)
我找到了一个githubGist来将您的时区显式设置为RailsAdmin:
# Credits for https://gist.github.com/jackdesert/7090731
# rails_admin.rb
require 'rails_admin/config/fields/base'
module RailsAdmin
module Config
module Fields
module Types
class Datetime < RailsAdmin::Config::Fields::Base
def value
value_in_default_time_zone = bindings[:object].send(name)
return nil if value_in_default_time_zone.nil?
pacific_time_zone = ActiveSupport::TimeZone.new('Europe/Paris')
value_in_default_time_zone.in_time_zone(pacific_time_zone)
end
end
end
end
end
end
这需要您在staging.rb
和production.rb
文件中的配置时区,并且您必须在部署中预编译资产