Rails服务器错误:Ruby版本是1.8.7,但您的Gemfile指定为1.9.3

Yuq*_*ang 12 ruby ruby-on-rails

我输入了一个现有的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]

所以我不知道如何解决它.你能给我一个帮助吗?

Nao*_*den 12

如果您使用的是rvm,请运行以下命令:

$ rvm use 1.9.3
Run Code Online (Sandbox Code Playgroud)


Yur*_*akh 5

尝试使用bundler

bundle exec rails s
Run Code Online (Sandbox Code Playgroud)


Мал*_*евъ 5

我有类似的问题:

$ bundle install
Your Ruby version is 2.1.0, but your Gemfile specified 1.9.3
Run Code Online (Sandbox Code Playgroud)

但:

$ ruby -v
1.9.3-p484
$ which ruby
/home/malo/.rvm/rubies/ruby-1.9.3-p484/bin/ruby
Run Code Online (Sandbox Code Playgroud)

我发现有答案:1,2,3,4,5.此外,它是开放的问题上.但是,我已经解决了以下问题:

  1. 找到我的路径:

    $ which bundle
    /home/malo/.rvm/gems/ruby-1.9.3-p484@global/bin/bundle
    
    Run Code Online (Sandbox Code Playgroud)
  2. 打开它来编辑(或只是吧),并认为这具有无效链接在第一线与红宝石:

    $ cat $(which bundler)|head -n 1 
    #!/home/malo/.rvm/rubies/ruby-2.1.0/bin/ruby
    
    Run Code Online (Sandbox Code Playgroud)
  3. 然后我得到当前有效ruby的路径,并用它替换了该无效:

    $ which ruby
    /home/malo/.rvm/rubies/ruby-1.9.3-p484/bin/ruby
    
    Run Code Online (Sandbox Code Playgroud)

    当然你也可以尝试用常用形式替换它:

    #!/usr/bin/env ruby
    
    Run Code Online (Sandbox Code Playgroud)

    这应该拿起当前使用的ruby版本.

  • 我能找到的所有其他答案都证明是无用的,但这是当场的.我解决了这个问题,然后我又回来了.而且,我爱你. (2认同)