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