我正在尝试使用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
,即只有这样我才会收到错误:
uninitialized constant Bundler /Users/daniel/cc/contributie_data/Rakefile:4 (See full trace by running task with --trace)
我一直在阅读有关此问题的其他一些问题,因此我了解到它与路径有关...
$ which rake
的/ usr /斌/耙
$ which ruby
的/ usr / local / bin中/红宝石
有人能给我一些关于这里会发生什么的建议吗? 更重要的是,我怎么能让捆绑者用耙子玩好...
感谢您对此提出任何意见,非常感谢!
答案 0 :(得分:3)
我得到了同样的错误(我正在使用rvm)。事实证明,在我的.profile和.bashrc中都有以下声明:
export PATH=~/.gem/ruby/1.8/bin:$PATH
因此采用此路径而不是rvm路径。我评论了这些线,现在一切正常
答案 1 :(得分:3)
尝试删除Gemfile.lock。它通常有助于
有效类型是[:development,:runtime],而不是nil
错误。
答案 2 :(得分:2)
哦,伙计,我今天通过这个。
我做了一次更新,我的rvm破了 - 开始抛弃丢失的脚本等。我刚刚完成了重新安装rvm和我的红宝石。
它不是很好,需要一段时间,但这是我恢复工作状态所做的。
从这里开始。 How can I remove RVM (Ruby Version Manager) from my system?结束并安装新鲜的。
答案 3 :(得分:1)
我也面临同样的问题,并在此链接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的内容不是一个好习惯。发布此信息只是为了说明解决此问题的另一种方法。