12

我输入了一个现有的 ruby​​ 应用程序,然后输入:

$ 导轨

想在这里启动rails服务器。但它说:

您的 Ruby 版本是 1.8.7,但您的 Gemfile 指定了 1.9.3

实际上,我有一个 1.8.7,但我删除了它。如果我这样做:

$红宝石-v

它说:ruby 1.9.3p286(2012-10-12 修订版 37165)[x86_64-darwin11.4.2]

所以我不知道我该如何解决它。你能帮帮我吗?

4

6 回答 6

12

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

$ rvm use 1.9.3
于 2013-02-02T12:26:47.670 回答
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

我找到了五个答案:12345。这也是上的公开问题。但是,我已将问题解决如下:

  1. 器的路径:

    $ which bundle
    /home/malo/.rvm/gems/ruby-1.9.3-p484@global/bin/bundle
    
  2. 打开它进行编辑(或只是它),并看到它在第一行有无效的 ruby​​ 链接:

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

    $ which ruby
    /home/malo/.rvm/rubies/ruby-1.9.3-p484/bin/ruby
    

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

    #!/usr/bin/env ruby
    

    这应该会选择当前使用的 ruby​​ 版本。

于 2014-02-04T15:55:40.170 回答
5

尝试使用捆绑器

bundle exec rails s
于 2012-10-21T05:33:20.360 回答
3

我发现我收到此错误的原因是我在配置文件中使用 Heroku 命令行程序,而 Heroku Toolbelt 带有它自己的 Ruby 版本。

该问题的两个解决方案是要么不使用 Heroku,要么使用Bundler.with_clean_env块而不是反引号来输出heroku命令。

于 2013-12-18T21:29:28.467 回答
1

请试试这个:

 1. Open your gemfile
 2. Specify rails version
 3. Run bundle update
 4. Run rails server - rails s
于 2012-10-21T06:49:57.727 回答
0

时不时地发生在我身上。但是我经常不喜欢在这里和那里切换 ruby​​ 版本。因此,我所做的只是转到 Gemfile 并将 ruby​​ 版本切换到我正在使用的版本。这样做可以让我启动我的服务器并继续工作。

例如,现在对于我正在开发的应用程序,我的 Gemfile 位于

ruby ENV["CUSTOM_RUBY_VERSION"] || "2.1.6"

我会把它改成

ruby ENV["CUSTOM_RUBY_VERSION"] || "1.9.3"
于 2016-04-06T18:31:36.057 回答