【问题标题】:Rails 5 deprecation warning and adding code to initializers?Rails 5 弃用警告并向初始化程序添加代码?
【发布时间】:2016-10-28 15:14:22
【问题描述】:

我应该向哪个初始化文件添加所需的代码行? 我收到以下弃用警告。

弃用警告:在 Rails 5.1 中,时间列将成为时区感知。这仍然会导致 Strings 被解析为好像它们在 Time.zone 中一样, 和Times 被转换为Time.zone

要保持旧行为,您必须在初始化程序中添加以下内容:

config.active_record.time_zone_aware_types = [:datetime]

要消除此弃用警告,请添加以下内容:

config.active_record.time_zone_aware_types = [:datetime, :time]

我是 Rails 新手,我只想遵循最佳实践。谢谢!

【问题讨论】:

  • 如果您转到config/environments/development.rbconfig/application.rb,您会发现您可以访问config 对象,您可以将该行添加到任何这些文件中。如果您希望它适用于您的所有环境,请将其放入 application.rb
  • 完美!我把代码放在 application.rb
  • 错误消息显示To keep the old behavior, you must add the following to your INITIALIZER。我尝试通过向其添加以下内容Rails.application.config.active_record.time_zone_aware_types = [:datetime, :time] 将其添加到初始化程序/config/initializers/time_zone_aware_types.rb,但奇怪的是它没有工作。最终,我最终将相同的内容添加到 /config/application.rb 并且它起作用了。警告消息应该被修复,或者应该清楚地传达应该去的文件名

标签: ruby-on-rails


【解决方案1】:

创建文件/config/initializers/time_zone_aware_types.rb 然后在文件中添加下一行 Rails.application.config.active_record.time_zone_aware_types = [:datetime, :time]

【讨论】:

    【解决方案2】:

    添加到config/application.rbclass Application < Rails::Application 这一行:

    config.active_record.time_zone_aware_types = [:datetime, :time]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-07
      • 2011-10-19
      相关资源
      最近更新 更多