前提・実現したいこと
rails tutorialでプログラミングを勉強し始めたものです。
rails tutorial でAccountActivationのデータモデルを作成中にrails db:seedを実行したのですが、エラーが発生してしまい次に進めません。
ググったのですが時間がかかりすぎるので投稿しました。
発生している問題・エラーメッセージ
ActiveRecord::RecordInvalid: Validation failed: Name is invalid, Name has already been taken
/Users/yoshidayukihiro/practice_new/sample_app/db/seeds.rb:8:in <main>' /Users/yoshidayukihiro/practice_new/sample_app/bin/rails:9:in
<top (required)>'
/Users/yoshidayukihiro/practice_new/sample_app/bin/spring:15:in <top (required)>' bin/rails:3:in
load'
bin/rails:3:in `<main>'
Tasks: TOP => db:seed
(See full trace by running task with --trace)
エラーメッセージ ActiveRecord::RecordInvalid: Validation failed: Name is invalid, Name has already been taken
該当のソースコード
#models/user.rb
class User < ApplicationRecord
attr_accessor :remember_token, :activation_token
before_save :downcase_email
before_create :create_activation_digest
validates :name, presence: true, length: {maximum: 50}
VALID_EMAIL_REGEX = /\A[\w+-.]+@[a-z\d-.]+.[a-z]+\z/i
validates :email, presence: true, length: {maximum: 255},
format: {with: VALID_EMAIL_REGEX},
uniqueness: {case_sensitive: false}
has_secure_password
validates :password, presence: true, length: {minimum: 6}, allow_nil: true
def User.digest(string)
cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST :
BCrypt::Engine.cost
BCrypt::Password.create(string, cost: cost)
end
def User.new_token
SecureRandom.urlsafe_base64
end
def remember
self.remember_token = User.new_token
update_attribute(:remember_digest, User.digest(remember_token))
end
def authenticated?(remember_token)
return false if remember_digest.nil?
BCrypt::Password.new(remember_digest).is_password?(remember_token)
end
def forget
update_attribute(:remember_digest, nil)
end
private
def downcase_email
self.email = email.downcase
end
def create_activation_digest self.activation_token = User.new_token self.activation_digest = User.digest(activation_token) end
end
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。