質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.50%

Railsチュートリアル 第10章 リスト10.23にてテストが通りません

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,312

score 53

2人目のユーザーarcherをtest/fixtures/users.ymlに追加すると2つ目のようなエラーが出てしまいます。サイト自体は動くのですが、なぜこのようなエラーが出てしまうのかが気になります。またこのエラーは今後railsチュートリアルを進めていく上で邪魔になってこないか心配です。どなたかご教授していただけると幸いです。

test/fixtures/users.yml

michael:
  name: Michael Example
  email: michael@example.com
  password_digest: <%= User.digest('password') %>

archer:
  name: Sterling Archer
  email: duchess@example.gov
  password_digest: <%= User.digest('password') %>

rails test後の内容 本来ならerrorなく進めることができるところらしい

  1) Error:
StaticPagesControllerTest#test_should_get_about:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
StaticPagesControllerTest#test_should_get_about:
NoMethodError: undefined method `each' for nil:NilClass


  2) Error:
StaticPagesControllerTest#test_should_get_contact:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
StaticPagesControllerTest#test_should_get_contact:
NoMethodError: undefined method `each' for nil:NilClass


  3) Error:
StaticPagesControllerTest#test_should_get_home:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
StaticPagesControllerTest#test_should_get_home:
NoMethodError: undefined method `each' for nil:NilClass


  4) Error:
StaticPagesControllerTest#test_should_get_help:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
StaticPagesControllerTest#test_should_get_help:
NoMethodError: undefined method `each' for nil:NilClass


  5) Error:
UsersSignupTest#test_invalid_signup_information:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
UsersSignupTest#test_invalid_signup_information:
NoMethodError: undefined method `each' for nil:NilClass


  6) Error:
UsersSignupTest#test_valid_signup_information:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
UsersSignupTest#test_valid_signup_information:
NoMethodError: undefined method `each' for nil:NilClass


  7) Error:
UserTest#test_authenticated?_should_return_false_for_a_user_with_nil_digest:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


  8) Error:
UserTest#test_email_validation_should_reject_invalid_addresses:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


  9) Error:
UserTest#test_email_should_be_present:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


 10) Error:
UserTest#test_name_should_not_be_too_long:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


 11) Error:
UserTest#test_should_be_valid:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


 12) Error:
UserTest#test_password_should_have_a_minimum_length:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


 13) Error:
UserTest#test_name_should_be_present:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


 14) Error:
UserTest#test_email_should_not_be_too_long:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


 15) Error:
UserTest#test_password_should_be_present_(nonblank):
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


 16) Error:
UserTest#test_email_addresses_should_be_unique:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


 17) Error:
UserTest#test_email_validation_should_accept_valid_addresses:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


 18) Error:
UsersLoginTest#test_login_with_remembering:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
UsersLoginTest#test_login_with_remembering:
NoMethodError: undefined method `each' for nil:NilClass


 19) Error:
UsersLoginTest#test_login_with_valid_information:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
UsersLoginTest#test_login_with_valid_information:
NoMethodError: undefined method `each' for nil:NilClass


 20) Error:
UsersLoginTest#test_login_with_valid_information_followed_by_logout:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
UsersLoginTest#test_login_with_valid_information_followed_by_logout:
NoMethodError: undefined method `each' for nil:NilClass


 21) Error:
UsersLoginTest#test_login_without_remembering:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
UsersLoginTest#test_login_without_remembering:
NoMethodError: undefined method `each' for nil:NilClass


 22) Error:
UsersLoginTest#test_login_with_invalid_information:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
UsersLoginTest#test_login_with_invalid_information:
NoMethodError: undefined method `each' for nil:NilClass


 23) Error:
SessionsHelperTest#test_current_user_returns_nil_when_remember_digest_is_wrong:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
SessionsHelperTest#test_current_user_returns_nil_when_remember_digest_is_wrong:
NoMethodError: undefined method `each' for nil:NilClass


 24) Error:
SessionsHelperTest#test_current_user_returns_right_user_when_session_is_nil:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
SessionsHelperTest#test_current_user_returns_right_user_when_session_is_nil:
NoMethodError: undefined method `each' for nil:NilClass


 25) Error:
SiteLayoutTest#test_layout_links:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
SiteLayoutTest#test_layout_links:
NoMethodError: undefined method `each' for nil:NilClass


 26) Error:
UsersEditTest#test_successful_edit:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
UsersEditTest#test_successful_edit:
NoMethodError: undefined method `each' for nil:NilClass


 27) Error:
UsersEditTest#test_unsuccessful_edit:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
UsersEditTest#test_unsuccessful_edit:
NoMethodError: undefined method `each' for nil:NilClass


 28) Error:
SessionsControllerTest#test_should_get_new:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
SessionsControllerTest#test_should_get_new:
NoMethodError: undefined method `each' for nil:NilClass


 29) Error:
UsersControllerTest#test_should_get_new:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
UsersControllerTest#test_should_get_new:
NoMethodError: undefined method `each' for nil:NilClass


 30) Error:
UsersControllerTest#test_should_redirect_update_when_not_logged_in:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
UsersControllerTest#test_should_redirect_update_when_not_logged_in:
NoMethodError: undefined method `each' for nil:NilClass


 31) Error:
UsersControllerTest#test_should_redirect_edit_when_not_logged_in:
ActiveRecord::Fixture::FixtureError: table "users" has no column named "archer".


Error:
UsersControllerTest#test_should_redirect_edit_when_not_logged_in:
NoMethodError: undefined method `each' for nil:NilClass


31 runs, 0 assertions, 0 failures, 31 errors, 0 skips

やってみたこと

rails db:migrate:resetをしてもともと登録してあった自分の名前、メールアドレスを消した。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

初めまして。
自分も同じエラーで悩みましたが、下記の内容で解決できました。

users.ymlファイルで追加したarcher:〜の部分で、
下記の様に「archer:」の先頭にTABが入っていないでしょうか?

michael:
  name: Michael Example
  email: michael@example.com
  password_digest: <%= User.digest('password') %>

  archer:
  name: Sterling Archer
  email: duchess@example.gov
  password_digest: <%= User.digest('password') %>


「archer:」の先頭にTABを削除すれば大丈夫だと思います。

michael:
  name: Michael Example
  email: michael@example.com
  password_digest: <%= User.digest('password') %>

archer:
  name: Sterling Archer
  email: duchess@example.gov
  password_digest: <%= User.digest('password') %>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る