路径与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的内容不是一个好习惯。 发布此信息只是为了说明解决此问题的另一种方法。
- Shoulda Matcher和has_many通过:未定义的方法`class_name’为nil:NilClass
- 在Ruby on Rails中采取vs首次演出
- 如何避免Globalize3将属性的回退转换返回到特定上下文?
- 连接在Rspec中被solr拒绝
- 安装rvm“bash /root/.rvm/scripts/rvm没有这样的文件或目录”
- Ruby Gem for windows中的mysql 5.5
- Ruby on Rails:无法在生产中退出应用程序
- 在Heroku上使用rails sync gem与Faye和Thin在生产模式下
- gem测试的策略,以确保gem与Rails 3.x和4.0一起使用?