bundle install
正在给予:
> undefined method `ruby' for #<Bundler::Dsl:0x00000001c4e1f8>
知道怎么解决?我正在使用Ruby 1.9.3-p125。
答案 0 :(得分:19)
Gembundler版本1.2引入了ruby
method to the dsl,允许您指定应用应使用的Ruby版本。
看起来您正在使用的Gemfile
是针对此新版本编写的,但您拥有的Bundler版本不支持ruby
方法。您需要安装最新的捆绑包(gem install bundler
应该这样做)或从Gemfile
中删除该行。
答案 1 :(得分:5)
运行这些命令,问题将解决
第1步:安装bundler
gem install bundler
第2步:捆绑安装
它将解决问题..
答案 2 :(得分:1)
您正在Gemfile中调用ruby 'something or other'
。
这个单行应该为您找到违规行(请注意,您需要与Gemfile位于同一个目录中,并且ca $ h表示提示 - 在您的系统上可能是>
)
$ ruby -ne 'print "(line #$.) #$_" if /^\s*ruby/' Gemfile
如果不理解你为什么这样做,我不能告诉你应该做些什么,但是作为Bundler的DSL的一部分,没有ruby
方法。
您可以看到DSL代码here。
答案 3 :(得分:0)
您可能正在使用过时版本的bundler
您可以使用
检查正在使用的bundler版本bundle --version
如果它早于1.2版,它可能已经过时,基于matt's answer。
在我的情况下,我已经完成了gem install bundler
,但忘了做rbenv rehash
(我使用rbenv),因此它没有使用我刚刚安装的捆绑包,而是一个旧的,过时的版本。