安装 bcrypt gem (LoadError)

3

我正在学习Rails教程... 我已经成功地设置了bcrypt(显然)从:

gem install bcrypt --platform=ruby

正如所述

Successfully installed bcrypt-3.1.11
(...)
1 gem installed

但是在user.rb中添加了这行代码之后
has_secure_password 

我运行了一个Rails测试,希望在user_test.rb文件中未要求密码确认时只返回红色指示灯,但实际上我得到了一个错误,在错误信息前面加了


You don't have bcrypt installed in your application. Please add it to your Gemfile and run bundle install

好的,那么我按照这些指示进行操作,bcrypt-3.1.11 (x86-mingw32)出现在列表中。然后我尝试运行Rails测试,但是出现了LoadError错误。

C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/bcrypt-3.1.11-x86-mingw32/lib/bcrypt.rb:16:in 'require': cannot load such file -- bcrypt_ext (LoadError)

没错,确实没有名为bcrypt_ext的文件!那又怎样呢?

我在想这里提到了DevKit Rails Gem::LoadError in UsersController#new。在我的第一次尝试中,它说“暂时增强PATH以包括DevKit…”


你可以包含你的Gemfile文件内容吗? - pdoherty926
我的Gemfile太大了,无法在评论中发送,我很担心。 - kart-able
这是一个仅限于Windows的问题。使用 gem list bcrypt 命令检查 gem 列表,可能安装了多个 bcrypt,移除 (x86-mingw32) 后应该就可以正常工作了。 - Pradeep Sapkota
实际上有不止一个bcrypt。我必须运行gem uninstall bcrypt才能看到我有bcrypt-3.1.11和bcrypt-3.1.11-x86-mingw32。由于依赖的gem,我无法删除最后一个。 - kart-able
这个问题经常出现,我不知道它是否是Windows的特定问题,但解决方案每次都是Pradeep Sapkota提出的那个:移除第二个gem(x86-mingw32)。 - kart-able
1个回答

0

可行的;

尝试以下步骤(对我有效):

在你的项目根目录下运行'bundle install',它应该可以正常工作。


1
在从Gemfile中删除bcrypt和bcrypt-ruby后,我首先运行了'bundle install'命令,并发现bcrypt仍然存在于'gem list bcrypt'列表中。 - kart-able
但没关系,我先移除了bcryt-buby才成功移除bcrypt本身。 - kart-able

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接