質問: ### 前提・実現したいこと Railsチュートリアル6.2.5「一意性を検証する」記載の内容について質問があります。 emailカラムにインデックスを加え一意性を強制するマイグレーションファイルを作成しマイグレートした後に 実施しているテストでREDとなっております。 REDになった理由として「fixturesのメールアドレスが一意になっていない」となっておりますが、 なぜこのタイミングでREDになるのでしょうか? 「fixture内のサンプルデータはバリデーションを通っていなかったので今まで問題にはなっていなかっただけでした」 と記載がありますが、バリデーションを通るようになったため、という理由でしょうか? それともemailカラムに関してのマイグレート自体が影響しているのでしょうか?
回答: マイグレーションファイル内で `add_index :users, :email, unique: true` usersテーブル内のemailカラムに対して一意性を持たせるように記述を行い `rails db:migrate`によってデータベースに反映させたので。 emailカラムに関してのマイグレートが関係しているとの認識であっていると思います。 これによりデータベースに同じemailを持つユーザーを登録できなくなりました。 `fixture.yml`内に記述されている内容はデータベースに保存されている ユーザーのサンプルデータを表すものになるので ``` one: name: MyString email: MyString two: name: MyString email: MyString ``` 上記のファイルは`one`という人と`two`という人がデータベースに保存されている ということを表しています。二人の持つ`email`カラムの内容が`MyString`と同一のemailアドレスを 表している為「同じemailアドレスを持つユーザーがデータベースに保存されています!」というエラーが 起きているということになると思います!