не могу активировать bcrypt-ruby (~› 3.0.0), уже активирован bcrypt-ruby-3.1.1. Убедитесь, что все зависимости добавлены в Gemfile

У меня есть приложение Rails 4.0.0. Когда я запускаю команду установки пакета, проблем нет. Это мой GemFile.

source 'https://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.0'

gem 'mysql2'

# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0.rc2'

# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'

# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'

# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'

# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'

group :doc do
  # bundle exec rake doc:rails generates the API under doc/api.
  gem 'sdoc', require: false
end

# Use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# Use unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano', group: :development

# Use debugger
# gem 'debugger', group: [:development, :test]

gem 'pry'
gem 'devise', git: "https://github.com/plataformatec/devise.git", branch: 'rails4'
gem 'bcrypt-ruby'
gem 'simple_form'
gem "therubyracer"
gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS
gem "twitter-bootstrap-rails"
gem 'simple_form'
gem 'jquery-ui-rails'

group :development, :test do
  gem 'rspec-rails', '~> 2.0'
  gem 'cucumber-rails', :git => "https://github.com/cucumber/cucumber-rails.git", :branch => "master_rails4_test", :require => false
  gem 'database_cleaner'
  gem 'factory_girl'
  gem "factory_girl_rails", "~> 4.0"
  gem "database_cleaner"
  gem "awesome_print"
end

А это мой Gemfile.lock

GIT
  remote: https://github.com/cucumber/cucumber-rails.git
  revision: 5fa9da37ab05213d2f46029ea476e09104ffe281
  branch: master_rails4_test
  specs:
    cucumber-rails (1.3.1)
      capybara (>= 1.1.2)
      cucumber (>= 1.2.0)
      nokogiri (>= 1.5.0)
      rails (>= 3.0.0)

GIT
  remote: https://github.com/plataformatec/devise.git
  revision: 6b5988d756d780903bf8c9ccb3e2b3b724ccebe8
  branch: rails4
  specs:
    devise (2.2.4)
      bcrypt-ruby (~> 3.0)
      orm_adapter (~> 0.1)
      railties (>= 3.2.6, < 5)
      warden (~> 1.2.1)

GEM
  remote: https://rubygems.org/
  specs:
    actionmailer (4.0.0)
      actionpack (= 4.0.0)
      mail (~> 2.5.3)
    actionpack (4.0.0)
      activesupport (= 4.0.0)
      builder (~> 3.1.0)
      erubis (~> 2.7.0)
      rack (~> 1.5.2)
      rack-test (~> 0.6.2)
    activemodel (4.0.0)
      activesupport (= 4.0.0)
      builder (~> 3.1.0)
    activerecord (4.0.0)
      activemodel (= 4.0.0)
      activerecord-deprecated_finders (~> 1.0.2)
      activesupport (= 4.0.0)
      arel (~> 4.0.0)
    activerecord-deprecated_finders (1.0.3)
    activesupport (4.0.0)
      i18n (~> 0.6, >= 0.6.4)
      minitest (~> 4.2)
      multi_json (~> 1.3)
      thread_safe (~> 0.1)
      tzinfo (~> 0.3.37)
    arel (4.0.0)
    atomic (1.1.10)
    awesome_print (1.1.0)
    bcrypt-ruby (3.1.1)
    builder (3.1.4)
    capybara (2.1.0)
      mime-types (>= 1.16)
      nokogiri (>= 1.3.3)
      rack (>= 1.0.0)
      rack-test (>= 0.5.4)
      xpath (~> 2.0)
    coderay (1.0.9)
    coffee-rails (4.0.0)
      coffee-script (>= 2.2.0)
      railties (>= 4.0.0.beta, < 5.0)
    coffee-script (2.2.0)
      coffee-script-source
      execjs
    coffee-script-source (1.6.3)
    commonjs (0.2.6)
    cucumber (1.3.4)
      builder (>= 2.1.2)
      diff-lcs (>= 1.1.3)
      gherkin (~> 2.12.0)
      multi_json (~> 1.7.5)
      multi_test (~> 0.0.1)
    database_cleaner (1.0.1)
    diff-lcs (1.2.4)
    erubis (2.7.0)
    execjs (1.4.0)
      multi_json (~> 1.0)
    factory_girl (4.2.0)
      activesupport (>= 3.0.0)
    factory_girl_rails (4.2.1)
      factory_girl (~> 4.2.0)
      railties (>= 3.0.0)
    gherkin (2.12.0)
      multi_json (~> 1.3)
    hike (1.2.3)
    i18n (0.6.4)
    jbuilder (1.4.2)
      activesupport (>= 3.0.0)
      multi_json (>= 1.2.0)
    jquery-rails (3.0.4)
      railties (>= 3.0, < 5.0)
      thor (>= 0.14, < 2.0)
    jquery-ui-rails (4.0.3)
      jquery-rails
      railties (>= 3.1.0)
    json (1.8.0)
    less (2.3.2)
      commonjs (~> 0.2.6)
    less-rails (2.3.3)
      actionpack (>= 3.1)
      less (~> 2.3.1)
    libv8 (3.11.8.17)
    mail (2.5.4)
      mime-types (~> 1.16)
      treetop (~> 1.4.8)
    method_source (0.8.1)
    mime-types (1.23)
    mini_portile (0.5.1)
    minitest (4.7.5)
    multi_json (1.7.7)
    multi_test (0.0.1)
    mysql2 (0.3.13)
    nokogiri (1.6.0)
      mini_portile (~> 0.5.0)
    orm_adapter (0.4.0)
    polyglot (0.3.3)
    pry (0.9.12.2)
      coderay (~> 1.0.5)
      method_source (~> 0.8)
      slop (~> 3.4)
    rack (1.5.2)
    rack-test (0.6.2)
      rack (>= 1.0)
    rails (4.0.0)
      actionmailer (= 4.0.0)
      actionpack (= 4.0.0)
      activerecord (= 4.0.0)
      activesupport (= 4.0.0)
      bundler (>= 1.3.0, < 2.0)
      railties (= 4.0.0)
      sprockets-rails (~> 2.0.0)
    railties (4.0.0)
      actionpack (= 4.0.0)
      activesupport (= 4.0.0)
      rake (>= 0.8.7)
      thor (>= 0.18.1, < 2.0)
    rake (10.1.0)
    rdoc (3.12.2)
      json (~> 1.4)
    ref (1.0.5)
    rspec-core (2.14.3)
    rspec-expectations (2.14.0)
      diff-lcs (>= 1.1.3, < 2.0)
    rspec-mocks (2.14.1)
    rspec-rails (2.14.0)
      actionpack (>= 3.0)
      activesupport (>= 3.0)
      railties (>= 3.0)
      rspec-core (~> 2.14.0)
      rspec-expectations (~> 2.14.0)
      rspec-mocks (~> 2.14.0)
    sass (3.2.9)
    sass-rails (4.0.0)
      railties (>= 4.0.0.beta, < 5.0)
      sass (>= 3.1.10)
      sprockets-rails (~> 2.0.0)
    sdoc (0.3.20)
      json (>= 1.1.3)
      rdoc (~> 3.10)
    simple_form (1.4.1)
    slop (3.4.5)
    sprockets (2.10.0)
      hike (~> 1.2)
      multi_json (~> 1.0)
      rack (~> 1.0)
      tilt (~> 1.1, != 1.3.0)
    sprockets-rails (2.0.0)
      actionpack (>= 3.0)
      activesupport (>= 3.0)
      sprockets (~> 2.8)
    therubyracer (0.11.4)
      libv8 (~> 3.11.8.12)
      ref
    thor (0.18.1)
    thread_safe (0.1.0)
      atomic
    tilt (1.4.1)
    treetop (1.4.14)
      polyglot
      polyglot (>= 0.3.1)
    turbolinks (1.3.0)
      coffee-rails
    twitter-bootstrap-rails (2.2.7)
      actionpack (>= 3.1)
      execjs
      rails (>= 3.1)
      railties (>= 3.1)
    tzinfo (0.3.37)
    uglifier (2.1.2)
      execjs (>= 0.3.0)
      multi_json (~> 1.0, >= 1.0.2)
    warden (1.2.3)
      rack (>= 1.0)
    xpath (2.0.0)
      nokogiri (~> 1.3)

PLATFORMS
  ruby

DEPENDENCIES
  awesome_print
  bcrypt-ruby
  coffee-rails (~> 4.0.0)
  cucumber-rails!
  database_cleaner
  devise!
  factory_girl
  factory_girl_rails (~> 4.0)
  jbuilder (~> 1.2)
  jquery-rails
  jquery-ui-rails
  less-rails
  mysql2
  pry
  rails (= 4.0.0)
  rspec-rails (~> 2.0)
  sass-rails (~> 4.0.0.rc2)
  sdoc
  simple_form
  therubyracer
  turbolinks
  twitter-bootstrap-rails
  uglifier (>= 1.3.0)

Когда я запускаю rake sometask , я столкнулся с этой проблемой,

You don't have bcrypt-ruby installed in your application. Please add it to your Gemfile and run bundle install
rake aborted!
can't activate bcrypt-ruby (~> 3.0.0), already activated bcrypt-ruby-3.1.1. Make sure all dependencies are added to Gemfile.
/Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:224:in `block in replace_gem'
/Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activemodel-4.0.0/lib/active_model/secure_password.rb:47:in `has_secure_password'
/Users/apple/Projects/YH/multi-domains/app/models/super_admin_user.rb:2:in `<class:SuperAdminUser>'
/Users/apple/Projects/YH/multi-domains/app/models/super_admin_user.rb:1:in `<top (required)>'
/Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:423:in `load'
/Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:423:in `block in load_file'
/Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:615:in `new_constants_in'
/Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:422:in `load_file'
/Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:323:in `require_or_load'
/Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:462:in `load_missing_constant'
/Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:183:in `const_missing'
/Users/apple/Projects/YH/multi-domains/lib/tasks/generate_new_data.rake:3:in `block in <top (required)>'

Как мне это исправить?


person ndrx42    schedule 19.07.2013    source источник


Ответы (9)


В вашем gemfile вы не указываете версию, поэтому вы устанавливаете последнюю версию bcrypt-ruby 3.1.1, но вам нужна любая версия от 3.0.0 до 3.0.9. Вы можете получить это, добавив ограничение версии следующим образом:

gem 'bcrypt-ruby', '~> 3.0.0'

Требование к версии исходит из SecurePassword ActiveModel, который в настоящее время имеет явную зависимость от bcrypt-ruby (~> 3.0.0). Вы можете увидеть зависимость от github. Когда этот код выполняется, он ищет версию от 3.0.0 до 3.0.9, которая не установлена, и выдает ошибку.

Эта зависимость была только что обновлена ​​до «~> 3.1.0» пару дней назад, но еще не попала в гем rails activemodel. Когда это произойдет, вам придется соответствующим образом обновить свою версию. Вот коммит, если вам интересно.

person jconley    schedule 19.07.2013

  1. Установите версию bcrypt 3.0.1 и 3.1.2.
  2. перейдите в "\Ruby200\lib\ruby\gems\2.0.0\gems\bcrypt-ruby-3.1.2-x86-mingw32\lib"
  3. скопируйте папку «2.0»
  4. вставьте в "Ruby200\lib\ruby\gems\2.0.0\gems\bcrypt-ruby-3.0.1-x86-mingw32\lib"
  5. включить гем «bcrypt-ruby» в свой Gemfile
  6. пакетная установка
person Marcos F    schedule 12.09.2013

У меня такая же проблема. Добавлять

gem 'bcrypt-ruby', '~> 3.0.0'

затем запустите bundle install и перезапустите сервер. Работал на меня

person Connor Leech    schedule 16.08.2013

Удалите Gemfile.lock и укажите гем «bcrypt-ruby», «3.0.0». Выполнить bundle install. На самом деле, в локальном файле гема bcrypt-ruby должен быть удален.

person ndrx42    schedule 19.07.2013

У меня была та же проблема, но текущий подход при условии, что gem 'bcrypt-ruby', '~> 3.0.0' не работал, поэтому я фактически установил версию 3.0.0, добавив строку gem 'bcrypt-ruby', '3.0.0' в Gemfile и установив конкретную версию 3.0.0 (хотя она должна работать до версии 3.0.9)< br/>
gem install --version='3.0.0' bcrypt-ruby

После этого просто проверьте установку пакета, вы можете запустить bundle show bcrypt-ruby, и тогда у вас должен быть путь, по которому был установлен этот гем, что-то вроде

%RUBY_PATH%/lib/ruby/gems/2.0.0/gems/bcrypt-ruby-3.0.0

после этих шагов я смог без проблем использовать bcrypt ... просто опубликую это на случай, если кто-то все еще столкнется с этой проблемой.

person Wiston Coronell    schedule 25.08.2013

Используйте ActiveModel has_secure_password

gem 'bcrypt-ruby', '~> 3.0.0'

Была такая же проблема. Удаление комментария # из строки выше решило мою проблему, как упоминал jconley.

person vsr    schedule 26.01.2014

Для меня это сработало, просто удалив зависимость для версии bycript в /active_model/secure_password.rb для тестовой среды разработки.

Я всегда добавлял его в производство только для 100% безопасности.

person Adrian Badarau    schedule 20.08.2014

В консоли:

$ gem install bundler
$ gem install bcrypt
$ bundle update bcrypt
person discipleartem    schedule 21.05.2016

Добавлять; gem 'bcrypt-ruby', '~> 3.1.1' в ваш gemfile

Или, если вы хотите именно 3.0.0, следуйте совету Максимуса и добавьте: gem 'bcrypt-ruby', '3.0.0'

Затем свяжите обновление bcrypt-ruby.

Вы также можете попробовать удалить файл gemfile.lock и повторно запустить установку пакета.

person daesu    schedule 19.07.2013