如果我在我的gem文件中编写以下内容,则无法使用Bundle安装
gem 'activerecord-sqlserver-adapter'
我遇到了以下错误
Bundler could not find compatible versions for gem "activerecord":
In Gemfile:
activerecord-sqlserver-adapter (~> 4.0.0) ruby depends on
activerecord (~> 4.0.0) ruby
rails (= 4.1.2) ruby depends on
activerecord (4.1.2)
但是当我从终端安装这个gem时,如
gem install activerecord-sqlserver-adapter
我收到了以下成功信息
Fetching: activerecord-sqlserver-adapter-4.1.0.gem (100%)
Successfully installed activerecord-sqlserver-adapter-4.1.0
1 gem installed
答案 0 :(得分:1)
与通过捆绑器安装gem并直接安装gem有所不同。使用Bundler时,Bundler将解析Gemfile
中包含的任何其他gem的上下文中的gem依赖项。因此,如果宝石A和B都依赖于C,但它们依赖于两个不同的版本,Bundler会抱怨。
在您的情况下,activerecord-sqlserver-adapter
取决于activerecord
(〜> 4.0.0),这意味着任何版本4.0.x,而您使用的Rails 4.1.2取决于{{1} } 4.1.2。
activerecord
和activerecord-sqlserver-adapter
具有相同的依赖关系,但版本不匹配。您需要降级Rails(不推荐),或升级rails
依赖项。您可能需要联系activerecord-sqlserver-adapter
的维护者,或者分叉库。
答案 1 :(得分:1)
你说你放了这个:
gem 'activerecord-sqlserver-adapter'
但捆绑声明说明了这一点:
In Gemfile:
activerecord-sqlserver-adapter (~> 4.0.0) ruby depends on
...
你真的把它放在你的Gemfile中吗?
gem 'activerecord-sqlserver-adapter', '~> 4.0.0'
因为最新的activerecord-sqlserver-adapter
支持AR 4.1.x.您可以尝试bundle up activerecord-sqlserver-adapter
,获取最新信息,或在Gemfile中指定'~> 4.1'
。