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.
- Instale la versión 3.0.1 y 3.1.2 bcrypt
- ve a "/ Ruby200 / lib / ruby / gems / 2.0.0 / gems / bcrypt-ruby-3.1.2-x86-mingw32 / lib"
- copia la carpeta ''2.0''
- pegar en "Ruby200 / lib / ruby / gems / 2.0.0 / gems / bcrypt-ruby-3.0.1-x86-mingw32 / lib"
- incluye gema ''bcrypt-ruby'' en tu Gemfile
- 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