Searcher Gem和ActiveRecord

时间:2017-02-21 00:33:22

标签: ruby-on-rails-4 heroku activerecord rubygems

如果我在我的Gemfile中使用:

gem "searcher", github: "radar/searcher"

捆绑安装完美无缺。但是我试图为heroku部署,而且我得到了这个错误:

$ git push heroku master
    Counting objects: 1277, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (1218/1218), done.
    Writing objects: 100% (1277/1277), 143.11 KiB | 0 bytes/s, done.
    Total 1277 (delta 793), reused 0 (delta 0)
    remote: Compressing source files... done.
    remote: Building source:
    remote:
    remote: -----> Ruby app detected
    remote: -----> Compiling Ruby/Rails
    remote: -----> Using Ruby version: ruby-2.2.6
    remote: -----> Installing dependencies using bundler 1.13.7
    remote:        Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
    remote:        The git source `git://github.com/radar/searcher.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
    remote:        You are trying to install in deployment mode after changing
    remote:        your Gemfile. Run `bundle install` elsewhere and add the
    remote:        updated Gemfile.lock to version control.
    remote:        You have added to the Gemfile:
    remote:        * source: git://github.com/radar/searcher.git (at master)
    remote:        You have deleted from the Gemfile:
    remote:        * source: https://github.com/radar/searcher.git (at master@c297512)
    remote:        Bundler Output: The git source `git://github.com/radar/searcher.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
    remote:        You are trying to install in deployment mode after changing
    remote:        your Gemfile. Run `bundle install` elsewhere and add the
    remote:        updated Gemfile.lock to version control.
    remote:
    remote:        You have added to the Gemfile:
    remote:        * source: git://github.com/radar/searcher.git (at master)
    remote:
    remote:        You have deleted from the Gemfile:
    remote:        * source: https://github.com/radar/searcher.git (at master@c297512)
    remote:  !
    remote:  !     Failed to install gems via Bundler.
    remote:  !
    remote:  !     Push rejected, failed to compile Ruby app.
    remote:
    remote:  !     Push failed
    remote: Verifying deploy...
    remote:
    remote: !   Push rejected to glacial-beyond-39560.
    remote:
    To https://git.heroku.com/glacial-beyond-39560.git
     ! [remote rejected] master -> master (pre-receive hook declined)
    error: failed to push some refs to 'https://git.heroku.com/glacial-beyond-39560.git'

然后我尝试在Gemfile中调整只放gem "searcher"并在尝试捆绑时出错:

   Bundler could not find compatible versions for gem "activerecord":
  In snapshot (Gemfile.lock):
    activerecord (= 4.2.1)

  In Gemfile:
    rails (= 4.2.1) was resolved to 4.2.1, which depends on
      activerecord (= 4.2.1)

    searcher was resolved to 0.0.1, which depends on
      activerecord (~> 3.0.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

我看到它建议使用ActiveRecord 3x。我需要做什么(为active_record 3x安装一个版本的rails?或者我这个宝石的安全协议是什么?有人可以帮我吗???

2 个答案:

答案 0 :(得分:0)

在尝试了很多方法后,我成功地改变了:

gem "searcher", github: "radar/searcher"

为此:

gem "searcher", git: "https://github.com/radar/searcher.git"

答案 1 :(得分:-1)

我认为删除Gemfile.lock的内容,然后再次运行bundle install。这对我有用。