Rails has_secure_password无法加载此类文件--bcrypt

时间:2018-01-13 21:21:43

标签: ruby-on-rails rubygems windows-10


我试图在Ruby on Rails中创建简单的身份验证 我目前卡住了,因为在数据库中创建表格并添加模型has_secure_password后,我收到错误LoadError: cannot load such file -- bcrypt
当我使用基本命令rails console尝试User.all时,会发生错误。

我看了很多解决方案,但没有任何帮助 目前我已经从https://github.com/codahale/bcrypt-ruby.git安装了bcrypt,但仍无法正常工作。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

如果您使用的是Rails 4+,则默认情况下不再提供has_secure_password,您必须在Gemfile中包含bcrypt gem:

gem 'bcrypt'

再次运行bundler:

> bundle install

然后重启服务器:

> bundle exec rails s

更多信息可在此处找到:http://api.rubyonrails.org/classes/ActiveModel/SecurePassword/ClassMethods.html

希望这会有所帮助。

答案 1 :(得分:0)

windows 10我使用此步骤解决了这个问题

第1步。

gem uninstall bcrypt
gem uninstall bcrypt-ruby

第2步

gem install bcrypt --platform=ruby

第3步

添加到您的Gemfile

gem 'bcrypt', platforms: :ruby

<强>色器件

如果您使用devise,则不需要在您的gem文件中添加bcrypt gem,请按照以下步骤进行操作

gem uninstall bcrypt
 gem install bcrypt --platform=ruby 

最后,重新启动服务器

希望能提供帮助

答案 2 :(得分:0)

我不知道为什么,但没有什么能帮助我。
最后我使用了devise gem而不是自己进行身份验证。
设计宝石也使用bcrypt,但接下来的代码完成工作:

  
      
  1. git clone https://github.com/codahale/bcrypt-ruby.gi]t
  2.   
  3. cd bcrypt-ruby
  4.   
  5. gem build bcrypt.gemspec
  6.   
  7. gem install gem-compiler
  8.   
  9. gem compile bcrypt-3.1.11.gem
  10.   
  11. gem install bcrypt-3.1.11-x86-mingw32.gem --local
  12.   

感谢大家帮助我。