路径与bundler的问题,是改变还是不改变?

我正在尝试使用bundler设置一个新的rails 3项目,但我遇到了与bundler有关的问题。 我在使用ruby 1.8.7的rails 3.0.3上

当试图做

$ bundle exec rake db:migrate 

我收到以下错误

 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/dependency.rb:52:in `initialize': Valid types are [:development, :runtime], not nil (ArgumentError) 

同样适用于我尝试在终端中发出常规rake任务,例如$ rake -T ie,然后我才得到错误:

uninitialized constant Bundler /Users/daniel/cc/contributie_data/Rakefile:4 (See full trace by running task with --trace)

我一直在阅读关于这个问题的其他一些问题,因此我知道它与路径有关…

$ which rake / usr / bin / rake

$ which ruby / usr / local / bin / ruby

谁能给我一些关于这里可能发生什么的建议? 更重要的是,我如何让捆绑器与rake玩得很好..

感谢您对此的任何意见,非常感谢!

我得到了同样的错误(我正在使用rvm)。 事实certificate,在我的.profile和.bashrc中都有以下声明:

 export PATH=~/.gem/ruby/1.8/bin:$PATH 

所以这条路径取代了rvm路径。 我评论了这些线,现在一切正常

尝试删除Gemfile.lock。 它通常有助于

有效类型是[:development,:runtime],而不是nil

错误。

哦,伙计,我今天刚过这个时候。

我做了一个更新,我的rvm破了 – 开始抛弃丢失的脚本等。 我刚刚完成了重新安装rvm和我的ruby。

它不是很好,而且需要一段时间,但这是我回到工作状态所做的。

从这里开始。 如何从系统中删除RVM(Ruby版本管理器)? 结束并安装新鲜。

我也面临同样的问题,并在此链接github:bundler的帮助下解决了它

修改了文件lib/bundler/resolver.rb的一行,它位于bundler gem 。 从行删除*标记d = Gem::Dependency.new(base.first.name, *reqs)

像这样:

 reqs = [dep.requirement.as_list, base.first.version.to_s].flatten.compact d = Gem::Dependency.new(base.first.name, *reqs) 

 reqs = [dep.requirement.as_list, base.first.version.to_s].flatten.compact d = Gem::Dependency.new(base.first.name, reqs) 

*直接修改gem的内容不是一个好习惯。 发布此信息只是为了说明解决此问题的另一种方法。