NoMethodError:未定义的方法reset_sent_at hartle tutorial

时间:2015-04-25 18:46:07

标签: ruby-on-rails railstutorial.org nomethoderror

我正在做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

然后关闭服务器。 他们没有工作。我仍然遇到同样的错误。

1 个答案:

答案 0 :(得分:2)

  

另一个迁移已经命名为add_reset_to_users:

如前所述,您之前已经创建了迁移,但此迁移不包括添加reset_sent_at列。

此时最简单的方法是创建一个新的迁移来添加缺失的列。

rails generate migration add_reset_sent_at_to_users reset_sent_at:datetime