我试图在Ruby on Rails中创建简单的身份验证
我目前卡住了,因为在数据库中创建表格并添加模型has_secure_password
后,我收到错误LoadError: cannot load such file -- bcrypt
。
当我使用基本命令rails console
尝试User.all
时,会发生错误。
我看了很多解决方案,但没有任何帮助
目前我已经从https://github.com/codahale/bcrypt-ruby.git
安装了bcrypt,但仍无法正常工作。
提前感谢您的帮助。
答案 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,但接下来的代码完成工作:
- git clone https://github.com/codahale/bcrypt-ruby.gi]t
- cd bcrypt-ruby
- gem build bcrypt.gemspec
- gem install gem-compiler
- gem compile bcrypt-3.1.11.gem
- gem install bcrypt-3.1.11-x86-mingw32.gem --local
醇>
感谢大家帮助我。