2

Rails で正常に動作するテストをいくつか開発しました。それから私は追加しました:

  • モデル ファイル内: has_secure_password
  • Gem ファイル: gem 'bcrypt', '3.1.7' (バンドルのインストール後、Gemfile.lock に表示されます)
  • password_digest を文字列として移行ファイルに追加しました(移行後、実際に schema.rb に表示されます)

そして、テスト ファイルの setup に password と password_confirmation を追加しました。

  def setup
    @user = User.new(email: "user@example.com",
                     username: "example user",
                     firstname: "Allan",
                     location: "Europe",
                     password: "foobar", 
                     password_confirmation: "foobar")
  end

実行するrake testと、次のようなエラーが表示されます。

NoMethodError: undefined method 'password_digest=' for #<User:0x00000002f9c020> test/models/user_test.rb:6:in 'setup'.

行 6 は、行 @user = User.new ... を参照しています。

したがって、gem と追加の列が正しく実装されているように見えますが、このエラー メッセージが表示されます。何が原因か考えられる人はいますか?

4

1 に答える 1