我正在做enter link description here的第10章。我收到了enter link description here
中提到的相同错误 PasswordResetsTest#test_password_resets:
NoMethodError: undefined method `reset_sent_at=' for #<User:0xccd47c0>
app/models/user.rb:66:in `create_reset_digest'
app/controllers/password_resets_controller.rb:12:in `create'
test/integration/password_resets_test.rb:17:in `block in <class:PasswordResetsTest>'
我尝试做答案中提到的所有事情。 我做的第一件事是:
rails generate migration add_reset_to_users reset_digest:string reset_sent_at:datetime
答案是:
Another migration is already named add_reset_to_users:
所以我确定我之前做过迁移。 迁移文件夹中的此_add_reset_to_users.rb文件。
class AddResetToUsers < ActiveRecord::Migration
def change
add_column :users, :reset_digest, :string
end
end
然后我尝试重新启动我的rails服务器。(我不确定我是否正确使用)
rails server
然后关闭服务器。 他们没有工作。我仍然遇到同样的错误。
答案 0 :(得分:2)
另一个迁移已经命名为add_reset_to_users:
如前所述,您之前已经创建了迁移,但此迁移不包括添加reset_sent_at
列。
此时最简单的方法是创建一个新的迁移来添加缺失的列。
rails generate migration add_reset_sent_at_to_users reset_sent_at:datetime