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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

3822閲覧

Rails Tutorial 11.1.2 rails db:seedができない

CrankTank

総合スコア12

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2018/10/18 13:02

前提・実現したいこと

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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

データベースの初期化はしてありますでしょうか。

$ rails db:migrate:reset $ rails db:seed

投稿2018/10/20 04:29

troch

総合スコア349

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問