在 Rails Admin 中编辑时更新了日期时间对象



所以我在Heroku上托管的PostgreSQL数据库中有一个Restaurant表,其中有两datetime列:openscloses代表每家餐厅的时间表。

我将 Rails

Admin 与我的 Rails 后端一起使用。每次我想编辑餐厅时,例如更改餐厅的phone_number注意:不接触openscloses),当我保存修改并多获得一小时时,openscloses都会更新。例如,如果特定餐厅的opens是 12:00,closes是 14:00,那么它就变成了 13:00 和 15:00。

同样,根本没有改变openscloses自己。

这可能与我的时区有关:在application.rb,我有这个:

# timezone
config.time_zone = 'Paris'
config.active_record.default_timezone = :local
# languages
config.i18n.default_locale = :fr 

我该怎么做才能避免日期时间更新?

编辑:

使用的版本:

  • 导轨 (5.1.6)
  • rails_admin (1.4.2)

我找到了一个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.rbproduction.rb文件中的配置时区,并且必须在部署中预编译资产

相关内容

  • 没有找到相关文章

最新更新