作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以通过控制台将Rails升级到新的5.0版本?
还是我必须手动去替换升级所需的每个文件?实习生给我解决这个问题的方法似乎很模糊。
最佳答案
我几天前才经历过,这是我的(成功的)过程:
首先,请确保您的应用在Ruby 2.2+上运行,然后再进行升级。
然后将Rails更新到最新的4.x版本(现在是4.2.7),然后运行测试套件(或充分锻炼您的应用程序),观察日志中是否存在弃用警告。
如果发现这些折旧,请修复这些折旧。
仔细阅读5.0 release notes并记下可能影响您应用程序的内容。
使用Ready4Rails检查您的Gemfile
,这应该有助于告诉您您拥有的 gem 可能尚未为Rails 5准备好。 [注意:从1/13/2020起,Ready4Rails.net似乎已被删除]
您可能需要访问主页存储库中的一些gem,以查看是否有一个分支可能受到支持,但尚未发布。您可能希望将这些gem的Gemfile固定到预发行版本或fork(即使您不立即采用,也可以帮助您在发布这些gem的最终版本时使事情正常运行)。
通常,这也可能有助于减少依赖性。例如,您的development
块中可能有一堆尚未更新的 gem 。您可能会暂时没有这些生活。
有人会建议您删除Gemfile
和bundle update
中的版本号。除了极小的应用程序之外,我建议不要这样做。一次更改太多的事情可能会很难找到问题。
像这样更改在Gemfile
中列出的Rails的版本:
gem 'rails', '= 5.0.0'
bundle update rails
。
bundle update
这个gem,再次运行您的套件(或练习使用该gem功能的应用程序部分)并查找不推荐使用的东西。
5.0.0
为止。
bundle update rails
成功完成,请提交并再次运行测试套件。
post :foo, name: 'bar'
更改为
post :foo, params: { name: 'bar' }
,以使命名参数语法弃用警告静音。
bin/rails rails:update
来更新您的配置文件。仔细比较每一个以寻找更改。我更喜欢从diff输出中复制/粘贴行,并手动将它们复制到我的配置中,并在必要时进行调整,并保持差异,直到我看到的都是差异中的自定义设置。
bin/rails rails:update
(
config/initializers/new_framework_defaults.rb
)创建的文件,看看是否可以禁用或注释掉这些文件而不影响应用程序的行为。
rails new rails5project
生成一个全新的Rails应用程序,并复制您的应用程序中可能没有的新文件(例如
app/models/application_record.rb
和
app/mailers/application_mailer.rb
)(以及过渡模型以从中继承而不是
ActiveRecord::Base
和
ActionMailer::Base
)。
app/assets/javascripts/cable.js
,
app/assets/javascripts/channels
和
app/channels
;如果要使用ActiveJob,请输入
app/jobs
。
Gemfile
,并带上那里列出的所有 gem 。例如,Rails5现在随附了Turbolinks 5,默认情况下的Puma,
listen
和
spring-watcher-listen
。
关于ruby-on-rails - 如何从Rails 4.2.6升级到Rails 5.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38442248/
我是一名优秀的程序员,十分优秀!