2

我是 Ruby on Rails 的初学者并试图从http://ruby.railstutorial.org/学习 我正在创建 sample_app 并卡在第 6 章。

我的 Ruby 版本:ruby 2.0.0p195 (2013-05-14) [i386-mingw32]

我的 Rails 版本:Rails 4.0.0

我的 GemFile 中有以下行:

gem 'bcrypt-ruby', '~> 3.0.0'

如果我键入gem list bcrypt-ruby,它会显示bcrypt-ruby (3.0.1)。但是如果我尝试创建用户,我会收到错误消息

您的应用程序中没有安装 bcrypt-ruby。请将其添加到您的 Gemfile 并运行 bundle install

我在 rails 网站、bcrypt 网站甚至 stackoverflow 上搜索了很多。但是,没有任何效果。请帮忙。

4

6 回答 6

4

我最近遇到了这个问题(和许多其他人一样)。根据此处发布ladyruby723 ,gem 'bcrypt', git: 'https://github.com/codahale/bcrypt-ruby.git', :require => 'bcrypt'在您的gemfile文件中使用。

于 2017-03-29T23:34:59.120 回答
1

我通过以下行解决了同样的问题:

gem 'bcrypt-ruby', '~> 3.1.2'
于 2014-03-04T19:05:19.477 回答
0

我相信这个确切的问题在另一个问题中得到解决。实际上产生了两条错误消息,这是更高级别的错误消息,通过搜索较低级别我找到了以下答案。

无法激活 bcrypt-ruby (~> 3.0.0),已激活 bcrypt-ruby-3.1.1。确保将所有依赖项添加到 Gemfile

于 2013-10-07T19:06:15.317 回答
0

终于... 得到它的工作。我不明白确切的问题,但我做了两个重要的改变。我不确定哪个更改使它起作用。

  1. 我卸载了从railsinstaller. 只为我的操作系统安装了 ruby​​(64 位,我在安装时无法选择railsinstaller)。然后我分别安装了rails,sqlite3。

  2. 我所做的另一个重要更改是在Gemfile.lock. 我认为这成功了。我保留了以下两行

    bcrypt-ruby (3.0.0) bcrypt-ruby (3.0.0-x86-mingw32)

于 2013-09-22T01:46:35.763 回答
0

在 gem 文件中添加以下内容

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

并运行 bundle install 并重新启动服务器

于 2017-09-13T08:49:39.143 回答
0

就我而言,问题在于 bcrypt 版本 3.1.2 已过时。幸运的是,Ruby 有一种方法可以直接从命令行安装特定 gem 的最新版本。在这种情况下,我输入

捆绑原始 bcrypt

但更一般地说,你可以做

捆绑原始gem name

如果您认为使用不同的 gem 可能会遇到类似的问题

于 2020-10-26T19:50:20.300 回答