为什么捆绑器无法解决与预发布版本的依赖关系?

Why bundler can't resolve dependencies with prerelease versions?

这样:

source 'https://rubygems.org'
gem 'rspec-rails', '~> 3.5.0.beta'
gem 'json_spec'

没用:

Bundler could not find compatible versions for gem "rspec-core":
  In Gemfile:
    json_spec was resolved to 0.1.0, which depends on
      rspec (~> 2.0) was resolved to 2.0.0, which depends on
        rspec-core (= 2.0.0)

    rspec-rails (~> 3.5.0.beta) was resolved to 3.5.0.beta1, which depends on
      rspec-core (= 3.5.0.beta1)

这样:

source 'https://rubygems.org'
gem 'rspec-rails', '~> 3.5.0.beta'
gem 'rspec', '~> 3.5.0.beta'
gem 'json_spec'

有效。为什么会这样?

这里是 related issues:

This is deliberate. Rubygems explicitly excludes prereleases unless the version requirement has an alphabetical number in it. So your version requirements, as stated, are actually in conflict. If you want a prerelease, use '>= 2.2a'.

我知道预发行版本是多么复杂,我要说的可能会导致问题,但我预计“>=2.2”的意思是 a)“任何 2.2 或更高版本的版本”和 b)“不要”我的帐户无法获得预发布版本,但如果其他 gem 想要一个,只要高于 2.2",我愿意。好像只有(a)的意思。

当依赖项不在我的 Gemfile 中而是在我使用的 gem 中并且我无法将版本更改为“>=2.2a”时,问题变得更加困难。