bcrypt错误:设计ruby 2.0和rails 4.0

当我尝试运行我的应用程序时,我一直收到此错误:

C:/ruby-2.0.0-p195-i386-mingw32/lib/ruby/gems/2.0.0/gems/activesupport-4.0.0.rc1 /lib/active_support/dependencies.rb:228:in`requirement’:无法加载此类文件 – 2 .0 / bcrypt_ext(LoadError)

任何接受者? – 我试图使用设计gem进行基本的用户身份validation..

当我在Windows上更新到Ruby 2.0.0+时,我遇到了这个错误。 我能够通过卸载下载的所有版本的bcrypt并使用DevKit构建gem来解决它。

gem uninstall bcrypt-ruby gem install bcrypt-ruby --platform=ruby --no-ri --no-rdoc 

通常进行bundle update将下载预编译的gem mingw32扩展,在这种情况下似乎不起作用。 将来不需要重新安装bcrypt-ruby的解决方法。

另外,我在这里继续更新Ruby on Rails的Windows安装说明(主要是供我自己参考),以便在Windows上安装Ruby on Rails。

https://github.com/remomueller/documentation/tree/master/windows

您可能遇到的其他一些Windows陷阱也列在那里:

https://github.com/remomueller/documentation/blob/master/windows/190-miscellaneous.md

在解决此问题之前,最好的解决方法是从git安装bcrypt-ruby

 gem 'bcrypt-ruby', git: 'https://github.com/codahale/bcrypt-ruby.git', :require => 'bcrypt' 

更新(20166月) – 正如@gneri所提到的, bcrypt-ruby将其名称更改为bcrypt ,因此请使用:

 gem 'bcrypt', git: 'https://github.com/codahale/bcrypt-ruby.git', :require => 'bcrypt' 

关于Window 7上的has_secure_password问题有助于此

gem uninstall bcrypt-ruby

gem uninstall bcrypt

gem install bcrypt-ruby --platform=ruby --no-ri --no-rdoc

gem install bcrypt --platform=ruby --no-ri --no-rdoc

添加到Gemfile:

 gem 'bcrypt-ruby', '~> 3.0.0', :require => 'bcrypt' gem 'bcrypt' 

bundle install

事实certificate,我正在使用的ruby版本存在问题。 我使用的是ruby2(32位)。

但如果你切换到64位版本的ruby 2,错误就会消失。

似乎使用Windows作为ROR应用程序的开发平台的垮台。 我需要使用Ruby 2.0 32位才能获得PG gem以便postgresql连接工作,或者我必须使用Ruby 2.0 64位才能让’Devise’gem工作。

捆绑器的新版本刚刚问世。 它注定了x64gem

 gem install bundler -v '1.4.0.pre.2'