Rails 使用 RSpec 遇到的问题

runup · 2014年09月11日 · 最后由 runup 回复于 2014年09月12日 · 1800 次阅读

问题:

在 rails c 中数据不能输入,显示 bcrypt-ruby 在 gemfile 中没有添加,但是我这里已经添加。

问题描述:

准备过一遍 rspec 的功能,因此学习了 every rails testing with rspec,代码为:

https://github.com/everydayrails/rspec_rails_4

因为页面没有提供注册的入口,因此在打开 rails c 输入如下的代码:

user = User.create(email: "[email protected]", password: "111111", password_confirmation: "111111", admin: "1")

回车显示是 bcrypt-ruby 没有添加到 gemfile 文件中,但是我的 gemfile 文件中已经有了这个 gem,多次尝试均是这个结果。

排除的可能如下:

  1. 不是电脑的问题,因为在其他项目中也有使用这个 gem,在 rails c 的情况下能够正常进行数据输入
  2. bcrypt-ruby 已经升级换名字为 bcrypt,但是在 Gemfile 中尝试添加这个 gem 也是不可以。

因为求问原因

bundle install

#1 楼 @billy 已经试过,但是还是这个问题

升级 Rails 到最新版看看。

#3 楼 @Rei 应该也不行。

#4 楼 @runup 再升级 bcrypt-ruby 看看。

#5 楼 @Rei bcrypt-ruby 现在已经升级为 bcrypt,我添加了这个 gem,没有标注版本,安装之后无效,还是显示缺少这个 gem

你试一下bundle exec rails console。可能性不大,但也许是机器里面新版本的 bcrypt 影响了。

user = User.create(email: "[email protected]", password: "111111", password_confirmation: "111111", admin: "1")

password_confirmation 是必须的么? 是不是只要 User.create(email: "[email protected]", password: "111111", admin: "1") 就可以了?

log 贴一下吧,你看 log 猜出来的结果,再让人回答,这可不是个好问题啊!

控制台的说明,@lmorenbit,我这里是 windows 下面的,在 ubuntu 下面的情况也是如此。

#9 楼 @lmorenbit 这是因为在 User 这个 model 里面添加了 has_secure_password 方法,会默认添加 password 和 password_confirmation 两个字段,并且判断两个字段的内容是否相同。

#7 楼 @billy 您这条语句的意思是使用当前版本的 gem,我试过,但是不行,还是报原来的老问题。

#13 楼 @lmorenbit thanks i will make a try

#13 楼 @lmorenbit it is available by the condition of devise, it is useless on this occasion

是不是用了 spring 之类的,如果有的话,先将它停止

#16 楼 @HungYuHei 没有用过这个东西

需要 登录 后方可回复, 如果你还没有账号请 注册新账号