当前位置: 首页 > 编程笔记 >

Ruby on Rails 从Rails 4.2升级到Rails 5.0

汪翰墨
2023-03-14
本文向大家介绍Ruby on Rails 从Rails 4.2升级到Rails 5.0,包括了Ruby on Rails 从Rails 4.2升级到Rails 5.0的使用技巧和注意事项,需要的朋友参考一下

示例

注意:升级Rails应用程序之前,请务必确保将代码保存在版本控制系统(例如Git)上。

要从Rails 4.2升级到Rails 5.0,必须使用Ruby 2.2.2或更高版本。如果需要,升级Ruby版本后,转到Gemfile并更改以下行:

gem 'rails', '4.2.X'

至:

gem 'rails', '~> 5.0.0'

并在命令行上运行:

$ bundle update

现在,使用以下命令运行更新任务:

$ rake rails:update

这将帮助您更新配置文件。系统将提示您覆盖文件,并且有几个输入选项:

  • 是–是,覆盖

  • n –不,请勿覆盖

  • 一个–全部,覆盖此和所有其他

  • q –退出,中止

  • d – diff,显示新旧之间的差异

  • h –帮助

通常,您应该检查新旧文件之间的差异,以确保没有不必要的更改。

Rails 5.0ActiveRecord模型继承自ApplicationRecord,而不是ActiveRecord::Base。ApplicationRecord是所有模型的超类,类似于ApplicationController控制器的超类。为了说明这种新的模型处理方式,您必须在app/models/名为的文件夹中创建一个文件application_record.rb,然后将该文件的内容编辑为:

class ApplicationRecord < ActiveRecord::Base
 self.abstract_class= true
end

Rails 5.0处理的回调也略有不同。返回false的回调不会停止回调链,这意味着后续的回调仍将运行,这与Rails 4.2不同。升级时,尽管可以通过添加以下内容切换到Rails 5.0行为,但Rails 4.2行为将保留。

ActiveSupport.halt_callback_chains_on_return_false = false

到config/application.rb文件。您可以通过调用明确终止回调链throw(:abort)。

在Rails 5.0中,ActiveJob将继承自ApplicationJob,而不是ActiveJob::Base在Rails 4.2中继承。要升级到Rails 5.0,请application_job.rb在app/jobs/文件夹中创建一个名为的文件。将该文件的内容编辑为:

class ApplicationJob < ActiveJob::Base
end

然后,您必须将所有作业更改为从而ApplicationJob不是从继承ActiveJob::Base。

Rails 5.0的另一个最大变化之一是不需要任何代码更改,但会更改您在Rails应用程序中使用命令行的方式。您将能够使用bin/rails或仅rails运行任务和测试。例如,$rake db:migrate现在可以使用代替使用$rails db:migrate。如果运行$bin/rails,则可以查看所有可用命令。请注意,现在可以使用运行的许多任务bin/rails仍然可以使用rake。

 类似资料:
  • 我最近尝试将我的Rails应用程序从Rails3.2更新到Rails4.2。在升级之前,我所有的测试套件都运行得很好,但是在更新之后,我得到了一些奇怪的东西。每次尝试运行测试时,都会发生相同的错误

  • 为了帮助大伙儿升级,我们为现在的Apache用户提供了一份重要信息的文档说明。这些只是一些简要说明,你可以从新特性文档或src/CHANGES文件中得到更多信息。 这篇文档仅仅描述了从版本 2.0 到 2.2 的变化,如果你是从1.3版进行升级的,请查考从1.3升级到2.0文档。 编译时配置的改变 编译过程与2.0版本非常相似,你曾经使用过的configure命令行(在安装目录下的build/co

  • 为了帮助大伙儿升级,我们为现在的Apache用户提供了一份重要信息的文档说明。这些只是一些简要说明,你可以从新特性文档或src/CHANGES文件中得到更多信息。 编译时配置的改变 Apache现在使用autoconf和libtool系统来进行安装进程的配置。这个系统用起来很像Apache1.3的APACI系统,但并不相同。 在普通的选择编译模块的基础上,Apache2.0把请求进程的主要部分移到

  • WARNING 本升级指南仅适用于 2.2 版本升级至 2.3 版本,如果你并非 2.2 版本,请查看其他升级指南,Plus 程序不允许跨版本升级! 更新代码 预计耗时: 2 小时 这是你自我操作的步骤,确认将你的 2.2 版本代码升级到 2.3 版本,如果你做过一些自定义修改可能会出现代码冲突,你需要解决。 升级依赖 预计耗时: 3 分钟 进入 Plus 程序目录,执行: composer up

  • WARNING 本升级指南仅适用于 2.1 版本升级至 2.2 版本,如果你并非 2.1 版本,请查看其他升级指南,Plus 程序不允许跨版本升级! 更新代码 预计耗时: 1 小时 这是你自我操作的步骤,确认将你的 2.1 版本代码升级到 2.2 版本,如果你做过一些自定义修改可能会出现代码冲突,你需要解决。 升级依赖 预计耗时: 3 分钟 进入 Plus 程序目录,执行: composer up

  • WARNING 本升级指南仅适用于 2.0 版本升级至 2.1 版本,如果你并非 2.0 版本,请查看其他升级指南,Plus 程序不允许跨版本升级! 更新代码 预计耗时: 1 小时 这是你自我操作的步骤,确认将你的 2.0 版本代码升级到 2.1 版本,如果你做过一些自定义修改可能会出现代码冲突,你需要解决。 升级依赖 预计耗时: 3 分钟 进入 Plus 程序目录,执行: composer up

  • WARNING 请你先确认你的版本已经是 1.9.* 版本,这里的 * 可以是 1.9 的任意修复版本。 更新代码 预计耗时: 1 小时 这是你自我操作的步骤,确认将你的 1.9 版本代码升级到 2.0 版本,如果你做过一些自定义修改可能会出现代码冲突,你需要解决。 升级依赖 预计耗时: 3 分钟 进入 Plus 程序目录,执行: composer update -vvv 1 这个过程根据你的网速

  • 介绍云联壹云产品如何进行升级操作。 升级介绍 本文档介绍 云联壹云 从v3.6.x升级到v3.7.x,以及v3.7.x升级到v3.7.y(y大于x)的步骤以及升级方法。 跨版本升级建议从相邻的版本升级,如从3.4.x升级到3.7.x,需要以下步骤 从3.4.x升级到3.6.x; 从3.6.x升级到3.7.x; 注意 3.5版本不对外发布,即3.4版本的下一个版本为3.6版本。 升级过程中将会同时升