我有一个Rails 3.0应用程序(技术上是3.0.7),我想升级到Rails 3.1以利用新的资产管道和其他奇特的新功能。做这件事的最佳方法是什么?我应该使用rails new
发生器,然后将我的旧应用程序中的所有内容复制到新的应用程序中?版本控制怎么样?我已经有了使用Git的旧应用程序。如何将Rails 3.0应用程序升级到Rails 3.1?
回答
刚刚升级我的应用程序从3.0.9到3.1.0的一个,这里是我的方法,你可能会因人而异:
编辑Gemfile中,变更轨道宝石版本
gem 'rails', '3.1.0'
还增加了新的宝石在3.1.0
group :assets do
gem 'sass-rails', "~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
gem 'jquery-rails'
运行引进bundle update rails
然后运行rake rails:update
并解决冲突。
将你的CSS/JavaScript的/图像等来app/assets
文件夹,确保有一个application.js
和application.css
文件(你可能想看看这两个从新建项目3.1.0)
包括CSS在您的布局文件/ JavaScript的链接像这样
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
熟悉轨3.1,这里的资源: http://jasonrudolph.com/blog/2011/06/06/helpful-resources-for-upgrading-to-rails-3-1/
,最重要的是你目前的测试,确保你有你的应用程序3.0一个很好的测试覆盖率,然后再开始。
我刚刚完成了这个应用程序,从3.0.9 看看这个博客,它非常简单。
http://davidjrice.co.uk/2011/05/25/how-to-upgrade-a-rails-application-to-version-3-1-0.html
它只是改变宝石文件,一些配置变量,动了几资产和创造一些CSS和JS清单文件的问题,不应该采取一个多小时。
在你的Git仓库中创建一个新的分支。
看看Rails 3.1 Example Apps如果你使用Devise,RSpec或黄瓜,因为它们会给你一个很好的工作参考实现。如果没有,只需使用rails new
来创建一个简单的Rails 3.1应用程序。
然后使用文件比较工具(例如FileMerge或Mac OS X上的更改)来确定Rails 3.1代码与3.0应用程序的不同之处。
拷贝宝石宝石的文件替换旧的一次 宝石“轨道”,“3.1。0'
group :assets do
gem 'sass-rails', "~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
所有你需要做的就是运行rake rails:update
也可以运行rake -T
看到你需要
- 1. 升级rails 2.3.5应用程序到3.0
- 2. 升级到Rails 3.0
- 3. 将rails应用程序从3.0升级到2.3.5
- 4. 从Rails 3.0升级到3.1,然后升级到3.2 - 但保持3.0工作
- 5. 升级时到Rails 3.1
- 6. 将Rails 3.0升级到3.1时,路由停止工作
- 7. 从Rails 3升级到Rails 3.1
- 8. 资产管道问题升级的Rails 3.0应用到Rails 3.2
- 9. 如何将rails应用程序从2.3.5升级到2.3.9
- 10. ruby on rails 3.0升级
- 11. 将rails应用从2.2.2升级到2.3.5
- 12. 将Rails应用程序从3.2.6升级到3.2.8
- 13. 从CanCan升级到Rails 3.0.9到Rails 3.1错误
- 14. 将rails 3升级到3.1 - ajax请求不起作用
- 15. 如何将Rails升级到4.2?
- 16. 将Rails 3.2升级到Rails 5
- 17. RoutingError在JavaScript文件夹从Rails的3.1升级后到Rails 3.2
- 18. Rails 3.1升级后的ActionView :: MissingTemplate
- 19. 升级到Ruby on Rails 3.1:'jquery_ujs.js'文件应该被删除?
- 20. 将iPhone应用程序从3.0升级到iOS4
- 21. 升级到Rails 5问题 - 现有的应用程序
- 22. 升级rails应用程序从1.8.7到红宝石1.9.3
- 23. rails安装osx - 2.0.2需要升级到3的应用程序
- 24. 从Tortoise Hg 3.0升级到3.1 - Python子流程调用
- 25. 升级Rails应用从1.2.3到5.0.0.rc1
- 26. 如何将使用Msxml2.ServerXMLHTTP.3.0的VBScript应用程序升级到C#?
- 27. 从rails 3.1降级到3.0.9
- 28. 使用Phaxio与Rails 3.1应用程序
- 29. 如何在Rails 3.0应用程序中使用Twitter中的Bootstrap?
- 30. 无法升级到rails 5
它可能会更新RVM一个好主意,一些很酷的耙子任务最新版本:'rvm get latest',或者如果RVM太旧,请再次运行安装脚本,然后更新RubyGems:'gem update --system',然后更新bundler:'gem install bundler' – Andrew
我有一些冲突,当我运行'bundle update rails',所以我不得不运行'bundle update'而不是 – Andrew
就assets目录而言,我刚刚创建了一个虚拟3.1应用程序,并将资产目录结构复制到我的旧应用程序 – Andrew