哈特尔8 Rails教程Remember_Token测试失败

时间:2013-03-29 07:20:43

标签: ruby-on-rails ruby-on-rails-3.2 facebook-c#-sdk

这不是一个重复的问题 - 我 运行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:migraterake db:test:prepare无济于事。

我尝试使用rake db:rollback回滚数据库,但出现此错误:

Index name 'index_users_on_remember_token' on table 'users' does not exist

我认为这突出了我发现的问题。

我认为我需要做的是回滚或删除此数据库文件并重做并将remember_token放入users表。

任何帮助非常感谢。

1 个答案:

答案 0 :(得分:0)

有时迁移会“不同步”,请尝试执行rake:db:reset

如果这不能解决问题,请查看控制台rails c

尝试User.create(名称:“dave”blah blah)

查看它是否创建了记忆标记