2011-05-16 161 views
1

我最近升级到红宝石1.8.7。我正在运行Rails 2.3.5和rubyGems 1.5.2。升级红宝石如何到

自从我升级,我想启动服务器,每次,我得到:这里

undefined local variable or method `version_requirements' for #<Rails::GemDependency:0x1022cc1c8> (NameError) 

this后建议降级rugyGems低于1.5.0版本。

降级似乎不是正确的解决方案..我应该升级Ruby还是Rails?另外,如果我升级到最新的红宝石(1.9.2)和铁轨(3.0)..我的应用程序会中断吗? 我有一个非常大的应用程序,无法弄清楚如何升级它不会破坏应用程序..

+0

如果你升级到Rails 3,它肯定会中断。如果你升级到Ruby 1.9.2,它可能会中断。看一下RVM https://rvm.beginrescueend.com/ – Dex 2011-05-16 20:27:37

+0

没有什么比试图在这里做小步骤。捆绑商,git和rvm在这里肯定是你的朋友。 Rails 3以1.8.7运行得很好,所以如果你不需要那些新的东西,你应该会好一段时间。 – Jan 2011-05-16 20:37:27

+0

Rails 2.3.5应该可以很容易地更新到2.3.10或2.3.11,但如果它的体积适中,通往3的道路通常至少会有点痛苦。尝试打开config/environment.rb,只需更改RAILS_GEM_VERSION,然后按照指示降级rubygems。 – Unixmonkey 2011-05-16 20:40:34

回答

1

你应该使用RVM所以你可以有两种,1.81.9.2 Ruby版本,运行,您可以与工作rails 2.3.xrails 3.x你想要的方式

+0

安装和配置'RVM'的步骤取决于平台 – 2011-05-16 20:40:40

+1

RVM实际上非常善于指导您下一步做什么,并且处理我所投入的所有内容。 – tadman 2011-05-16 21:23:58

+1

“安装和配置RVM的步骤取决于平台”我在平台上看到的唯一变化就是所需的依赖关系,当我们执行“rvm notes”时,RVM会吐出。否则,它在几种Linux类型和Mac OS上都是相同的步骤。 – 2011-05-16 22:48:52

2

关于version_requirements的一件事是rubygems中的一个bug - 由他们的创建者确认。 我也参加了该bug报告RubyGems的:)

gem update --system 1.5.0 

直到这是固定执行一个优雅降级。

我遇到了一些Rails 2.x应用程序的这个问题,还有一次使用了3.0.4应用程序,但有了不同的错误信息,再次降级rubygems解决了它。

+0

p.s.在升级到rails 3时有很好的屏幕录像。我建议您查看本网站上其他rails-3标记的屏幕录像。 http://railscasts.com/episodes/225-upgrading-to-rails-3-part-1 http://railscasts.com/episodes/226-upgrading-to-rails-3-part-2 http:// railscasts.com/episodes/227-upgrading-to-rails-3-part-3 – 2011-05-16 21:29:04