2013-07-19 34 views
16

我有Rails 4.0.0應用程序。當我運行bundle install命令時沒有問題。這是我的GemFile。無法激活bcrypt-ruby(〜> 3.0.0),已激活bcrypt-ruby-3.1.1。確保所有的依賴項都添加到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/[email protected]/gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:224:in `block in replace_gem' 
/Users/apple/.rvm/gems/[email protected]/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/[email protected]/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:423:in `load' 
/Users/apple/.rvm/gems/[email protected]/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:423:in `block in load_file' 
/Users/apple/.rvm/gems/[email protected]/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:615:in `new_constants_in' 
/Users/apple/.rvm/gems/[email protected]/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:422:in `load_file' 
/Users/apple/.rvm/gems/[email protected]/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:323:in `require_or_load' 
/Users/apple/.rvm/gems/[email protected]/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:462:in `load_missing_constant' 
/Users/apple/.rvm/gems/[email protected]/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)>' 

我應該怎樣解決這個問題?

回答

0

添加;寶石 'bcrypt-紅寶石', '〜> 3.1.1' 到您的Gemfile

或者,如果你特別想3.0.0,請按照鮃的意見,並補充:寶石 'bcrypt-紅寶石', '3.0.0'

然後捆綁更新bcrypt-ruby。

您可能還想嘗試刪除gemfile.lock並重新運行軟件包安裝。

0

刪除Gemfile.lock並指定gem'bcrypt-ruby','3.0.0'。運行bundle install。實際上,在本地gem文件中應該卸載bcrypt-ruby。

44

在你的gem文件中,你沒有指定版本,所以你安裝的最新版本是3.1.1的bcrypt-ruby,但你需要的是從3.0.0到3.0.9的任何版本。您可以通過添加一個版本約束,像這樣得到:

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

版本需求來自加載ActiveModel的SecurePassword目前對bcrypt-紅寶石(〜> 3.0.0)的顯式依賴。你可以看到github的依賴關係。執行此代碼時,它會查找未安裝的3.0.0至3.0.9版本,因此會引發錯誤。

幾天前,這種依賴關係剛剛更新爲'〜> 3.1.0',但還沒有進入rails activemodel gem。當它的時候,你必須相應地更新你的版本。如果您好奇,這裏是commit

1

我有同樣的問題。添加

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

然後運行 bundle install和重新啓動服務器。工作對我來說

0

我有同樣的問題,但目前的做法提供gem 'bcrypt-ruby', '~> 3.0.0'沒有工作,所以我實際上安裝的版本3.0.0 加入一行gem 'bcrypt-ruby', '3.0.0'到Gemfile中並安裝特定版本3.0.0(儘管它應該工作高達3.0.9版本)

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

在此之後,只需驗證您的捆綁安裝,您可以運行bundle show bcrypt-ruby,然後你應該在已安裝這種寶石的路徑,像

%RUBY_PATH%/ lib目錄/紅寶石/寶石/ 2.0.0 /寶石/ bcrypt-紅寶石3.0。0

這些步驟後,我能夠使用bcrypt沒有問題...只是在事件有人張貼這仍然遇到這個問題。

3
  1. 同時安裝3.0.1和3.1.2版本bcrypt
  2. 進入「\ Ruby200 \ LIB \紅寶石\寶石\ 2.0.0 \寶石\ bcrypt-紅寶石3.1.2 86的mingw32 \ LIB」
  3. 複製 '2.0' 文件夾
  4. 粘貼到 「Ruby200 \ lib中\紅寶石\寶石\ 2.0.0 \寶石\ bcrypt-紅寶石3.0.1 86的mingw32 \ lib中」
  5. 包括寶石'bcrypt-ruby'在您的Gemfile中
  6. 軟件包安裝
+0

它的偉大工程。謝謝 –

0

加載ActiveModel使用has_secure_password

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

有同樣的問題。正如jconley所說,從上面刪除註釋#解決了我的問題。

0

對我來說,它的工作原理是刪除/active_model/secure_password.rb for development測試環境中byScript版本的依賴關係。

我總能確保它在生產中添加只是爲了100%安全

0

在控制檯:

$ gem install bundler 
$ gem install bcrypt 
$ bundle update bcrypt 
相關問題