我输入了现有的ruby应用程序,并输入:
$ rails s
想在这里启动rails服务器。 但它说:
您的Ruby版本是1.8.7,但您的Gemfile指定为1.9.3
实际上,我有一个1.8.7,但我删除了它。如果我这样做:
$ ruby -v
它说: ruby 1.9.3p286(2012-10-12修订版37165)[x86_64-darwin11.4.2]所以我不知道如何解决它。你能给我一个帮助吗?
答案 0 :(得分:12)
如果您使用rvm,请运行:
$ rvm use 1.9.3
答案 1 :(得分:5)
尝试使用bundler
bundle exec rails s
答案 2 :(得分:5)
我有类似的问题:
$ bundle install
Your Ruby version is 2.1.0, but your Gemfile specified 1.9.3
但:
$ ruby -v
1.9.3-p484
$ which ruby
/home/malo/.rvm/rubies/ruby-1.9.3-p484/bin/ruby
我找到了五个答案:1,2,3,4,5。在open issue上也是github。但是,我已经解决了以下问题:
找到bundler的路径:
$ which bundle
/home/malo/.rvm/gems/ruby-1.9.3-p484@global/bin/bundle
打开它进行编辑(或只是cat),并看到它在第一行中有无效的ruby链接:
$ cat $(which bundler)|head -n 1
#!/home/malo/.rvm/rubies/ruby-2.1.0/bin/ruby
然后我获得了当前有效ruby的路径,并将其替换为无效:
$ which ruby
/home/malo/.rvm/rubies/ruby-1.9.3-p484/bin/ruby
当然,您也可以尝试使用常用形式替换它:
#!/usr/bin/env ruby
这应该选择当前使用的ruby版本。
答案 3 :(得分:3)
我发现我得到这个错误的原因是我在我的配置文件中发布了一个Heroku命令行程序而Heroku Toolbelt附带了它自己的Ruby版本。
该问题的两个解决方案是要么不向Heroku发出攻击,要么使用Bundler.with_clean_env
块而不是反引号来弹出heroku
命令。
答案 4 :(得分:1)
请试试这个:
1. Open your gemfile
2. Specify rails version
3. Run bundle update
4. Run rails server - rails s
答案 5 :(得分:0)
偶尔会发生这种情况。但是我经常不喜欢在这里和那里切换ruby版本。所以我只是去Gemfile并将ruby版本切换到我正在使用的版本。这样做可以让我启动服务器并继续处理。
所以,例如,现在我正在处理的应用程序,我的Gemfile位于
ruby ENV["CUSTOM_RUBY_VERSION"] || "2.1.6"
我会把它改成
ruby ENV["CUSTOM_RUBY_VERSION"] || "1.9.3"