这不是一个重复的问题——我已经运行了rake db:test:prepare
.
Hartl 关于添加remember_token
.
运行 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
表中。
非常感谢任何帮助。