環境
CentOS
Ruby 2.4.0
Ruby on Rails 5.2.2
MySQL 5.6.43
Railsでブログ風のwebアプリを作成しています。
ユーザー登録機能のUserモデルでemalカラムにuniquenessのバリデーションをかけています。
user.rb
Ruby
1class User < ApplicationRecord 2 validates :name, {presence: true} 3 validates :email, {presence: true, uniqueness: true} 4 validates :password, {presence: true} 5 validates :image_name, {presence: true} 6end
以上の状態でDBのテスト用初期データseed.rbをrails db:seedで流し込んだのち、seed.rbの記述ミスに気づいた為rails db:resetにてDBのリセットを行いました。
seed.rbの修正を行い、またrails db:seedでデータを流し込もうとしたのですがバリデーションに失敗しましたと出ます。
console
1$ rails db:seed 2rails aborted! 3ActiveRecord::RecordInvalid: バリデーションに失敗しました: Emailはすでに存在します 4/home/vagrant/rails/XXXX/db/seeds.rb:19:in `<main>' 5/home/vagrant/rails/XXXX/bin/rails:9:in `<top (required)>' 6/home/vagrant/rails/XXXX/bin/spring:15:in `<top (required)>' 7bin/rails:3:in `load' 8bin/rails:3:in `<main>' 9Tasks: TOP => db:seed 10(See full trace by running task with --trace)
自分が考えるに、uniquenessの参照しているファイルがあってそこのデータはDBのデータではないのでdb:resetでリセットできなかったのと思われますが調べてもわからなかったのでお聞きしました。
対処法をご教授頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。