エラーが出てから、エラーがなくなるまでの経緯
・rails-tutorialの10章2.3を進めていた際に、以下のようなコマンドを使用すると上記のようなエラーがでた。
bundle exec rake test
エラー文を読むと、dbにusersテーブルがないよと言われているので、とりあえず、test環境でのdbのテーブルを確認してみた。
$RAILS_DEV=test rails dbconsole
実行結果は以下の様になった。
sqlite> .table
schema_migrations
確かにusersのテーブルが存在しない。よってtest環境でuserテーブルを作成するためにdbをresetする。
$ RAILS_ENV=test bundle exec rake db:migrate:reset
RubyDep: WARNING: Your Ruby is outdated/buggy.
RubyDep: WARNING: Your Ruby is: 2.3.0 (buggy). Recommendation: upgrade to 2.3.1.
RubyDep: WARNING: (To disable warnings, see:http://github.com/e2/ruby_dep/wiki/Disabling-warnings )
== 20170118071744 CreateUsers: migrating ======================================
-- create_table(:users)
-> 0.0019s
== 20170118071744 CreateUsers: migrated (0.0020s) =============================
== 20170123093707 AddIndexToUsersEmail: migrating =============================
-- add_index(:users, :email, {:unique=>true})
-> 0.0015s
== 20170123093707 AddIndexToUsersEmail: migrated (0.0017s) ====================
== 20170123095430 AddPasswordDigestToUsers: migrating =========================
-- add_column(:users, :password_digest, :string)
-> 0.0008s
== 20170123095430 AddPasswordDigestToUsers: migrated (0.0009s) ================
== 20170208063309 AddRememberDigestToUsers: migrating =========================
-- add_column(:users, :remember_digest, :string)
-> 0.0008s
== 20170208063309 AddRememberDigestToUsers: migrated (0.0009s) ================
== 20170216130826 AddAdminToUsers: migrating ==================================
-- add_column(:users, :admin, :boolean, {:default=>false})
-> 0.0015s
== 20170216130826 AddAdminToUsers: migrated (0.0016s) =========================
== 20170217055846 AddActivationToUsers: migrating =============================
-- add_column(:users, :activation_digest, :string)
-> 0.0009s
-- add_column(:users, :activated, :boolean, {:default=>false})
-> 0.0006s
-- add_column(:users, :activated_at, :datetime)
-> 0.0006s
== 20170217055846 AddActivationToUsers: migrated (0.0024s) ====================
== 20170225054528 AddResetToUsers: migrating ==================================
-- add_column(:users, :reset_digest, :stringreset_sent_at)
-> 0.0009s
== 20170225054528 AddResetToUsers: migrated (0.0010s) =========================
テーブルができたので、もう一度テストを回してみると、以下の様な結果になった。
$ bundle exec rake test
# Running:
....................................
Finished in 1.803985s, 19.9558 runs/s, 88.6925 assertions/s.
36 runs, 160 assertions, 0 failures, 0 errors, 0 skips
エラー文を読むことは重要。