这不是一个重复的问题 - 我 运行rake db:test:prepare
。
关于添加remember_token
的Hartl's Rails教程。
运行authentication_pages_spec.rb时出错:
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$eszlV1FYN2HahpYn1X/NyOTWYbzKjfLZCv7Vc2I0Wb3p..."> to respond to :remember_token
# ./spec/models/user_spec.rb:18:in `block (2 levels) in <top (required)>'
我的错误:
我生成了TIMESTAMP_add_remember_token_to_users.rb并添加了以下代码:
class AddRememberTokenToUsers < ActiveRecord::Migration
def change
add_column :user, :remember_token, :string
add_index :user, :remember_token
end
end
我跑rake db:migrate
,然后rake db:test:prepare
。我确定上面代码中的:user
在两行中应该都是:users
,我已经完成了。代码现在看起来像这样:
class AddRememberTokenToUsers < ActiveRecord::Migration
def change
add_column :users, :remember_token, :string
add_index :users, :remember_token
end
end
测试仍然失败。进行这些编辑后,我运行rake db:migrate
和rake db:test:prepare
无济于事。
我尝试使用rake db:rollback
回滚数据库,但出现此错误:
Index name 'index_users_on_remember_token' on table 'users' does not exist
我认为这突出了我发现的问题。
我认为我需要做的是回滚或删除此数据库文件并重做并将remember_token
放入users
表。
任何帮助非常感谢。
答案 0 :(得分:0)
有时迁移会“不同步”,请尝试执行rake:db:reset
如果这不能解决问题,请查看控制台rails c
尝试User.create(名称:“dave”blah blah)
查看它是否创建了记忆标记