【问题标题】:bundle install gives undefined method `ruby' for #<Bundler::Dsl:0x00000001c4e1f8>bundle install 为#<Bundler::Dsl:0x00000001c4e1f8> 提供未定义的方法“ruby”
【发布时间】:2012-07-14 02:43:37
【问题描述】:

bundle install 正在给予:

> undefined method `ruby' for #<Bundler::Dsl:0x00000001c4e1f8>

知道如何解决吗?我正在使用 Ruby 1.9.3-p125。

【问题讨论】:

  • 你应该提供你的 Gemfile。

标签: ruby bundler


【解决方案1】:

Gembundler 的 1.2 版引入了 ruby method to the dsl,允许您指定应用应使用的 Ruby 版本。

您使用的 Gemfile 似乎是为这个新版本编写的,但您使用的 bundler 版本不支持 ruby 方法。您需要安装最新的捆绑程序(gem install bundler 应该这样做)或从您的 Gemfile 中删除该行。

【讨论】:

    【解决方案2】:

    运行这些命令即可解决问题

    第 1 步:安装捆绑程序 gem 安装捆绑器
    第 2 步:捆绑安装

    它会解决问题..

    【讨论】:

      【解决方案3】:

      您在 Gemfile 中调用 ruby 'something or other'

      这个单行应该为你找到有问题的行(注意你需要和 Gemfile 在同一个目录中,并且 ca$h 表示提示 - 在你的系统上这可能是&gt;

      $ ruby -ne 'print "(line #$.) #$_" if /^\s*ruby/' Gemfile
      

      不明白你为什么这样做,我不能告诉你应该做什么,但是捆绑器的 DSL 中没有 ruby 方法。

      你可以看到DSL代码here

      您可以查看 Bundler 的文档 here,以及 Gemfiles 的文档 here

      【讨论】:

        【解决方案4】:

        您可能使用的是过时版本的捆绑程序

        您可以检查您正在使用的捆绑软件的版本

        bundle --version
        

        如果它早于版本 1.2,它可能已经过时,基于 matt's answer

        在我的例子中,我已经完成了 gem install bundler,但忘记了 rbenv rehash(我使用 rbenv),因此它没有使用我刚刚安装的捆绑程序,而是使用了一个旧的、过时的版本。

        【讨论】:

          猜你喜欢
          • 2020-01-15
          • 2017-09-04
          • 2019-02-08
          • 1970-01-01
          • 1970-01-01
          • 2015-11-22
          • 1970-01-01
          • 2014-05-12
          • 2014-03-31
          相关资源
          最近更新 更多