gpt4 book ai didi

ruby-on-rails - 升级Rails : What am I to do with new_framework_defaults file?

转载 作者:行者123 更新时间:2023-12-04 01:34:35 24 4
gpt4 key购买 nike

我正在从 rails 5.1 升级到 5.2。
我做了 bundle update rails (加上一些依赖项)和 rails app:update .
现在我有了文件 initializers/new_framework_defaults_5_2.rb ,所有行都被注释掉了。

我不确定我现在需要做什么。我的应用程序正常工作,所以我想,所有行都被注释掉了,我已经使用了所有新的默认值。那我就不需要那个文件了吧?

假设我遇到错误,文件中设置的值是新的默认值?所以我会取消注释,也许翻转 bool 值并尝试找出导致错误的原因?

感谢您的帮助

最佳答案

(刚刚经历了 4.2 到 5.2 Rails 的升级,我会写一个更完整的答案。)

rails 5.0

从 Rails 5 开始,Rails 团队 decided to generate an initializer , config/initializers/new_framework_defaults.rb ,其中包含新配置默认值的值。该文件是为新的 ( rails new ) Rails 5.0 应用程序和更新 ( rake app:update ) 到 Rails 5.0 的应用程序生成的,尽管内容是 differ在新的和更新的应用程序之间。

对于新项目,它包含 Rails 5.0 的默认值。

对于更新的项目,它包含先前版本的默认值。目的是您的应用程序将以与之前相同的默认设置运行,并且您可以在升级期间一次切换/更新一个。

rails 5.1 和 5.2

此机制的一些缺点后became apparent (主要与按词法顺序执行初始化器有关),Rails 5.1 made some changes到它。

A new method , #load_defaults , 已添加到 Rails.application.config .新框架默认初始化器是版本化的,例如,new_framework_defaults_5_1.rb ,并且仅在更新期间生成,不适用于新应用程序。

不像new_framework_defaults.rb从 Rails 5.0 开始,new_framework_defaults_5_x.rb 中的设置文件(几乎)都被注释掉了。它们是新的默认值。您可以逐一检查,取消对设置的注释,然后测试您的应用程序。如果您的应用程序在新的默认设置下正确运行,您可以丢弃 new_framework_defaults_5_x.rb文件并提高 config/application.rb 中的值到当前版本,即更改 config.load_defaults 5.1config.load_defaults 5.2如果您要更新到 Rails 5.2。

可能存在您不想要新默认值的设置。如果我想让这样的设置永久化,我可能会把它移到 config/application.rb某处低于 load_defaults呼吁所有环境,或在适当的 config/environments/*.rb用于特定环境配置的文件。

概括

在我看来就像 config/initializers/new_framework_defaults*.rb成功完成升级后,文件不应存在。它们只是帮助突出更改并帮助从一个版本升级到下一个版本。

关于ruby-on-rails - 升级Rails : What am I to do with new_framework_defaults file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50102584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com