由于formtastic宝石版本冲突,无法使用Surveyor gem以及已使用的Active Admin gem

时间:2015-01-30 10:07:57

标签: ruby-on-rails-4 rubygems activeadmin formtastic surveyor-gem

很奇怪,我第一次遇到这样的问题: 从它的外观来看,我有冲突,因为测量师和activeadmin试图使用相同宝石的不同版本,你如何处理这些问题呢?

Bundler could not find compatible versions for gem "formtastic":
  In Gemfile:
    formtastic (~> 2.1.0) ruby

    activeadmin (>= 0) ruby depends on
      formtastic (2.3.0)

我更加注重: 在SO上找到了这个链接: Unable to use surveyor gem

我认为只需更改gemfile.lock中的版本就可以解决这个问题,但事实并非如此,我现在得到的错误是: Bundler找不到gem" actionpack"的兼容版本:   在Gemfile中:     activeadmin(> = 0)ruby取决于       formtastic(〜> 2.1.0)ruby取决于         actionpack(〜> 3.0)ruby

rails (= 4.1.0) ruby depends on
  actionpack (4.1.0)

更改后的gemfile.lock看起来像: 眼镜:     activeadmin(1.0.0.pre)       arbre(〜> 1.0,> = 1.0.2)       波旁酒       咖啡轨       formtastic(〜> 2.1.0) 进行此更改后我必须运行的命令是:

Resolving dependencies...
You have requested:
  formtastic ~> 2.1.0

The bundle currently has formtastic locked at 2.3.1.
Try running `bundle update formtastic`

2 个答案:

答案 0 :(得分:1)

此错误表示您尝试一起使用的版本Surveyor和activeadmin无法一起使用 - 它们具有不兼容的库要求。 (Surveyor需要[2.1.0, 2.2.0)范围内的formtastic; activeadmin仅适用于[2.3.0, 2.3.0]。)

修改Gemfile.lock(不推荐)无法解决这个问题,因为依赖版本是由各个库的gemspecs定义的。当加载每个库时,rubygems将使用其指定的版本约束加载其依赖项(这是您使用&#34看到的;您已请求..."错误)。

要尝试的事情:

  • 查找彼此兼容的不同版本的surveyor和activeadmin。如果您在Gemfile中放松了一个或另一个的版本约束,Bundler将尝试执行此操作。但有可能没有这样的版本可以与您应用中的其他宝石兼容(包括Rails)。

  • fork测量员或activeadmin并更改formtastic依赖版本。这可能会破坏事情 - 他们可能因某种原因而有特定的版本要求 - 但值得尝试。

答案 1 :(得分:0)

试试这个..(测量员和主动管理兼容版)

  1. rm Gemfile.lock
  2. 添加gem gem' activeadmin',github:' gregbell / active_admin'
  3. 添加宝石"测量师"
  4. 捆绑安装