在开始升级过程之前,我们有一些建议的准备工作。
查阅官方的Rails指南,并遵循你的应用程序所需的任何步骤,这一点很重要。
使用rails app:update进行升级
bin/webpack bin/webpack-dev-server命令rails webpacker:install命令会生成bin/webpacker bin/webpacker-dev-server命令,都保留即可rails webpacker:install命令还会更新package.json yarn.lock文件,建议升级rails时不要更新,等升级完稳定后可以考虑升级config.autoloader= 已经被删除。如果你把它设置为:zeitwerk ,只要把它删除即可。查看我们写的关于Zeitwerk升级的文章。Rails.application.config.autoloader查看现在的模式rails zeitwerk:check检查是否需要添加appliaction.rb中的 config.eager_load_paths ,如果打印的不是All is good!,则根据提示添加:# config/application.rb
config.eager_load_paths << Rails.root.join('app', 'models', 'prod_readonly')
config.eager_load_paths << Rails.root.join('lib')
record.errors[attribute] << message改为record.errors.add(attribute, :invalid, message) # record.errors[attribute] << (options[:message] || '手机号格式错误')
record.errors.add(attribute, :invalid, message: options[:message] || '手机号格式错误')
# record.errors[:owner] << '无法对自己的货品进行竞拍'
record.errors.add(:owner, :invalid, message: '无法对自己的货品进行竞拍')
# record.errors[:base] << '无法对自己的回流单创建订单'
record.errors.add(:base, :invalid, message: '无法对自己的回流单创建订单')
# config/application.rb
config.active_record.yaml_column_permitted_classes = [
Symbol, Date, Time, BigDecimal,
ActiveSupport::TimeWithZone, ActiveSupport::TimeZone
]