确保所有依赖项都添加到

确保所有依赖项都添加到

本文介绍了无法激活 bcrypt-ruby (~> 3.0.0),已经激活 bcrypt-ruby-3.1.1.确保所有依赖项都添加到 Gemfile的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有 Rails 4.0.0 应用程序.当我运行 bundle install 命令时,没有问题.这是我的 GemFile.

I have Rails 4.0.0 app. When I run bundle install command there is no problem. This is my 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

And this is my 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 时,我遇到了这个问题,

When I run rake sometask , I faced with this problem,

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)>'

我该如何解决这个问题?

How should I fix this?

推荐答案

在您的 gemfile 中,您没有指定版本,因此您正在安装最新版本的 bcrypt-ruby,即 3.1.1,但是您安装的是需要是从 3.0.0 到 3.0.9 的任何版本.您可以通过添加这样的版本约束来获得它:

In your gemfile, you aren't specifying the version, so you're installing the latest version of bcrypt-ruby which is 3.1.1, but what you need is any version from 3.0.0 to 3.0.9. You can get this by adding a version constraint like so:

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

版本要求来自 ActiveModel 的 SecurePassword,它目前显式依赖于 bcrypt-ruby (~> 3.0.0).您可以看到对 github 的依赖.执行此代码时,它会查找未安装的 3.0.0 至 3.0.9 版本,因此会引发错误.

The version requirement comes from ActiveModel's SecurePassword which currently has an explicit dependency on bcrypt-ruby (~> 3.0.0). You can see the dependency on github. When this code is executed, it looks for a version 3.0.0 through 3.0.9 which is not installed and so it throws an error.

此依赖项几天前刚刚更新为~> 3.1.0",但尚未进入 rails activemodel gem.当它发生时,您必须相应地更新您的版本.如果您好奇,请点击提交.

This dependency was just updated to '~> 3.1.0' a couple of days ago, but has not made its way into the rails activemodel gem yet. When it does, you'll have to update your version accordingly. Here's the commit if you're curious.

这篇关于无法激活 bcrypt-ruby (~> 3.0.0),已经激活 bcrypt-ruby-3.1.1.确保所有依赖项都添加到 Gemfile的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-23 13:57