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

Rails has_secure_password cannot load such file -- bcrypt


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

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

预先感谢您的帮助。

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

gem 'bcrypt'

运行 再次捆绑:

> bundle install

然后重启你的服务器:

> bundle exec rails s

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

希望这会有所帮助。

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 

最后,重启你的服务器

希望有所帮助

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

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

谢谢大家的帮助。