諸事情により、チュートリアルで使用するデータベースにMySQLを使用していました。
厳密にこれが原因であったのかどうかまで調査していませんが、備忘録もかねて記載しておきます。
第11章アカウントの有効化
「11.1.2 AccountActivationのデータモデル」を作成し、最後の演習にて「本項での変更を加えた後、テストスイートが green のままになっていることを確認してみましょう。」とあったのでテストを実行してみると、なんと「RED!!!!」。
下記のエラーが大量発生です。
ERROR["test_should_redirect_destroy_when_not_logged_in", UsersControllerTest, 1.6888076740015094] test_should_redirect_destroy_when_not_logged_in#UsersControllerTest (1.69s) ActiveRecord::StatementInvalid: ActiveRecord::StatementInvalid: Mysql2::Error: Incorrect datetime value: '2019-08-28 04:45:57 UTC' for column 'activated_at' at row 1: INSERT INTO `users` (`name`, `email`, `password_digest`, `admin`, `activated`, `activated_at`, `created_at`, `updated_at`, `id`) VALUES ('Michael Example', 'michael@example.com', '$2a$04$qZFF.lkhI3cN/OV1relhSuvVVRIsqTHAcPy5NL0Q.OmGZahaZDvcS', 1, 1, '2019-08-28 04:45:57 UTC', '2019-08-28 04:45:57', '2019-08-28 04:45:57', 762146111)
Railsタイムゾーン変更
なんか「activated_at」に入れようとしているデータに「UTC」が付いているのが気になる、、、、、。
と言うことで、Railsのタイムゾーンを変更してました。
変更は config/application.rb
に下記を追記。
config.time_zone = 'Tokyo' config.active_record.default_timezone = :local
再度Railsのテスト
タイムゾーンを変更して、改めて「rails test」!
無事に「green」になりました。
これはもう少し調査が必要かなぁ。
とりあえず今はチュートリアルを先に進めます。