尝试使用RVM 1.22.3从rails 3.2.13切换到3.1。
使用ruby 1.9.3。
做了以下事情:
$ rvm gemset create rails31
gemset created rails31 => /Users/mwsage/.rvm/gems/ruby-1.9.3-p429@rails31
$ rvm 1.9.3-p429@rails31
$ gem install -v3.1 rails
在获取并成功安装了许多宝石之后,我被提示:
rails's executable "rails" conflicts with railties
Overwrite the executable? [yN]
我选择了否。
然后
$ rails -v
Rails 3.1.0
我完全成立了吗?如果需要,我该如何解决这个冲突?
答案 0 :(得分:0)
有两种方法可以解决gem版本冲突:
在生成新应用程序时使用rails版本:rails _3.1.0_ new
- 这将确保您选择的版本用于生成新项目。这仅适用于简单的场景,并且无法解决“已加载错误的宝石版本”的问题。
使用Gemfile
告诉bundler使用哪个版本的rails:
source "http://rubygems.org"
gem 'rails', '3.1.0'
然后使用bundle exec
bundle exec rails
作为rails
前缀的所有命令将使用存储在Gemfile
中的Bundler
版本执行 - 当您使用RVM时,它会附带gem {{ 3}}已安装并且它会为您加载bundle exec
因此如果您安装了Gemfile
且安装了正确的gem(rails)版本,则不需要使用{{1}}为命令添加前缀。