我已经克隆了 Rails 存储库以尝试帮助解决一些问题,当然,我选择了遵循Ruby on Rails指南的 The Hard Way of Contributing to Ruby on Rails 。一切都很顺利,克隆了 repo,开始跟踪上游并继续安装捆绑的 gem 并运行测试。马上我得到了这个:
$ bundle install
Updating git://github.com/rails/arel.git
Updating git://github.com/brynary/rack-test.git
Updating git://github.com/rails/jquery-rails.git
Updating git://github.com/rails/coffee-rails.git
Updating git://github.com/wycats/thor.git
Updating git://github.com/rails/activerecord-deprecated_finders.git
Updating git://github.com/rails/sprockets-rails.git
Updating git://github.com/voloko/sdoc.git
Fetching gem metadata from https://rubygems.org/........
Fetching gem metadata from https://rubygems.org/..
Could not find gem 'activerecord-deprecated_finders (= 0.0.1) ruby', which is required by gem 'rails (>= 0) ruby', in any of the sources.
在 Google 上苦苦挣扎后,我发现 gem activerecord-deprecated_finders似乎还没有在 Rubygems 上发布,这可以解释最后一个错误。Yehuda Katz建议可以在 Gemfile 上声明这些依赖项,并覆盖 gemspec 定义,开发 Rails 的好人确实做到了:
# rails/Gemfile
...
gem 'activerecord-deprecated_finders', github: 'rails/activerecord-deprecated_finders', branch: 'master'
...
我已经尝试了 Yehuda 帖子中一位评论者的建议,但它也没有奏效:
# rails/Gemfile
...
@dependencies.delete_if{ |d| d.name == 'activerecord-deprecated_finders' }
...
所以,我有点不知道为什么bundle install
没有去工作。我找到了对那个 gem 的引用activerecord/activerecord.gemspec
并评论了解决问题的方法,但这似乎不是一个可以接受的解决方案。有谁知道我可能哪里出错了?我正在使用 Ruby 1.9.3p286 和 Bundler 1.2.3。
PS:在生成一个新的 Rails 4.0.0.beta 应用程序时,我看到了很多关于这个 gem 的信息,这不是我想要在这里完成的。
谢谢!