世界上到底发生了什么?我的测试没有通过,在整个教程中我都非常小心(这一次)。请告诉我为什么弹出remember_token错误。
这是我的错误: 故障:
1) User
Failure/Error: it { should respond_to(:remember_token) }
expected #<User id: nil, name: "Example User", email: "user@example.com", created_at: nil, updated_at: nil, password_digest: "$2a$04$HUTzfhPB9eOgNaBIwQZn/.BpGt4h/v9wgLlo.UoMoh8Q..."> to respond to :remember_token
# ./spec/models/user_spec.rb:28:in `block (2 levels) in <top (required)>'
Finished in 0.19682 seconds
22 examples, 1 failure
Failed examples:
rspec ./spec/models/user_spec.rb:28 # User
这是我的代码:
分贝/迁移/ [时间戳] _add_remember_token_to_users.rb
class AddRememberTokenToUsers < ActiveRecord::Migration
def change
add_column :users, :remember_token, :string
add_index :users, :remember_token
end
end
规格/模型/ user_spec.rb 需要'spec_helper'
describe User do
before do
@user = User.new(name: "Example User", email: "user@example.com",
password: "foobar", password_confirmation: "foobar")
end
subject { @user }
it { should respond_to(:name) }
it { should respond_to(:email) }
it { should respond_to(:password_digest) }
it { should respond_to(:password) }
it { should respond_to(:password_confirmation) }
it { should respond_to(:remember_token) }
it { should respond_to(:authenticate) }
it { should be_valid }
it { should respond_to(:authenticate) }
.
.
.
答案 0 :(得分:0)
我的猜测是你需要运行rake db:test:prepare
。祝你好运!
答案 1 :(得分:0)
我遇到了一个非常类似的问题,我们覆盖了它here。
总而言之,数据库出现了一些问题,所以我所做的就是删除表格,然后重新运行rake db:migrate
和rake db:test:prepare
。
删除表格:
我确实尝试了这些步骤然后运行rake db:migrate
,但遇到了另一个错误。然后我删除了整个users
表(在SQLite数据库浏览器中),然后重新运行rake db:migrate
并完成了所有操作。
在执行此操作之前备份。
答案 2 :(得分:0)
我今天也遇到了这个问题。 我不得不手动删除[timestamp] _add_remember_token_to_users.rb文件。 然后跑 bundle exec rake db:migrate bundle exec rake db:test:prepare