首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误地声明"bcrypt-ruby不是捆绑包的一部分“,如何将bcrypt-ruby添加到Gemfile?

错误地声明"bcrypt-ruby不是捆绑包的一部分“,如何将bcrypt-ruby添加到Gemfile?
EN

Stack Overflow用户
提问于 2012-02-19 15:47:55
回答 6查看 10.1K关注 0票数 12

当我将has_secure_password添加到模型(继承自ActiveRecord::Base)时,出现错误,声明"bcrypt-ruby不是捆绑包的一部分“。

这里的日志是:

代码语言:javascript
复制
Started GET "/users" for 127.0.0.1 at 2012-02-19 16:37:12 +0900

Gem::LoadError (bcrypt-ruby is not part of the bundle. Add it to Gemfile.):
app/models/user.rb:3:in `<class:User>'
app/models/user.rb:1:in `<top (required)>'
app/controllers/users_controller.rb:1:in `<top (required)>'

我安装了bcrypt-ruby

代码语言:javascript
复制
$ gem install bcrypt-ruby
Building native extensions.   This could take a while...
1 gem installed
Installing YARD (yri) index for bcrypt-ruby-3.0.1...
Installing RDoc documentation for bcrypt-ruby-3.0.1...

但都没有用。

我试过了

代码语言:javascript
复制
$ bundle exec rails server

但没有任何帮助。

如果我注释掉行"has_secure_password",这个错误不会出现。

我该如何解决这个问题?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-02-19 16:05:18

正如消息所说,您需要将bcrypt-ruby添加到Gemfile (在项目的根目录下)。

添加

代码语言:javascript
复制
gem "bcrypt-ruby"

然后运行bundle install就可以了(如果您还没有安装它,这将获取gem )。

您可以指定特定的版本,例如

代码语言:javascript
复制
gem "bcrypt-ruby", "~> 3.0.1"

将为您提供>=到3.0.1但低于3.1的最新版本。如果3.0.1有一个你依赖的bug修复,并且你很高兴得到更多的bug修复,但你不想要重大的改变,你可能会这样做。在bundler网站上有更多的信息。

票数 13
EN

Stack Overflow用户

发布于 2012-07-24 00:48:50

我在Gemfile中已经有了gem 'bcrypt-ruby', '~> 3.0.0',并且已经运行了命令bundle,但是我仍然收到了这条消息。问题是我忘了重启服务器:

代码语言:javascript
复制
touch tmp/restart.txt
票数 23
EN

Stack Overflow用户

发布于 2012-02-19 16:01:54

在Gemfile中添加一行

代码语言:javascript
复制
gem 'bcrypt-ruby'

然后从命令行

代码语言:javascript
复制
bundle install
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9347599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档