ruby-on-rails-4 bcrypt-ruby

ruby on rails 4 - no se puede activar bcrypt-ruby(~> 3.0.0), ya activado bcrypt-ruby-3.1.1. Asegúrese de que todas las dependencias se agreguen a Gemfile



ruby-on-rails-4 (9)

Añadir; gema ''bcrypt-ruby'', ''~> 3.1.1'' a tu gemfile

O si desea específicamente 3.0.0, siga los consejos de Maximus y añada: gem ''bcrypt-ruby'', ''3.0.0''

A continuación, actualice el paquete bcrypt-ruby.

También es posible que desee intentar eliminar su gemfile.lock y volver a ejecutar la instalación del paquete.

Tengo la aplicación Rails 4.0.0. Cuando ejecuto el comando de instalación del paquete no hay problema. Este es mi 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

Y este es mi 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)

Cuando ejecuto rake sometask , me enfrenté a este problema,

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

¿Cómo debo solucionar esto?


En su gemfile, no está especificando la versión, por lo que está instalando la última versión de bcrypt-ruby, que es 3.1.1, pero lo que necesita es cualquier versión de 3.0.0 a 3.0.9. Puede obtener esto agregando una restricción de versión como esta:

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

El requisito de versión proviene de SecurePassword de ActiveModel que actualmente tiene una dependencia explícita en bcrypt-ruby (~> 3.0.0). Puedes ver la dependencia de github . Cuando se ejecuta este código, busca una versión 3.0.0 a 3.0.9 que no está instalada y arroja un error.

Esta dependencia se acaba de actualizar a ''~> 3.1.0'' hace un par de días, pero aún no ha llegado a la gema de activemodel de rieles. Cuando lo haga, deberá actualizar su versión en consecuencia. Aquí está el compromiso si tienes curiosidad.


Retire Gemfile.lock y especifique la gema ''bcrypt-ruby'', ''3.0.0''. Ejecute la bundle install . En realidad, en el archivo gema local bcrypt-ruby debe ser desinstalado.


Yo tuve el mismo problema. Añadir

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

luego ejecute bundle install y reinicie el servidor. Trabajó para mi


Tuve el mismo problema, pero el enfoque actual proporcionaba gem ''bcrypt-ruby'', ''~> 3.0.0'' no funcionaba, así que instalé la versión 3.0.0 y agregué la línea gem ''bcrypt-ruby'', ''3.0.0'' a Gemfile e instalando la versión específica 3.0.0 (aunque debería funcionar hasta la versión 3.0.9)

gem install --version=''3.0.0'' bcrypt-ruby

Después de esto, solo verifica la instalación de tu paquete, puedes ejecutar bundle show bcrypt-ruby y luego debes tener la ruta donde se instaló esta gema, algo así como

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

después de estos pasos, pude usar la bcripta sin problemas ... simplemente publicando esto en caso de que alguien aún encuentre este problema.


  1. Instale la versión 3.0.1 y 3.1.2 bcrypt
  2. ve a "/ Ruby200 / lib / ruby ​​/ gems / 2.0.0 / gems / bcrypt-ruby-3.1.2-x86-mingw32 / lib"
  3. copia la carpeta ''2.0''
  4. pegar en "Ruby200 / lib / ruby ​​/ gems / 2.0.0 / gems / bcrypt-ruby-3.0.1-x86-mingw32 / lib"
  5. incluye gema ''bcrypt-ruby'' en tu Gemfile
  6. paquete de instalación

Use ActiveModel has_secure_password

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

Tenía el mismo problema. Eliminar el comentario # de la línea anterior resolvió mi problema, como mencionó jconley.


Para mí funcionó simplemente borrando la dependencia de la versión de bycript en /active_model/secure_password.rb para el entorno de prueba de desarrollo.

Siempre me aseguré de agregarlo en producción al 100% de seguridad


En consola:

$ gem install bundler $ gem install bcrypt $ bundle update bcrypt