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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

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

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

1回答

244閲覧

Rails5でのエラー解決方法について

koume

総合スコア458

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

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

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2017/08/28 06:05

rails5.1.3でwebアプリケーション制作の勉強中です。発生したエラーの解決方法がわからずに困っております。内容をみると、
「nicknameカラムが重複しています。」ということだと思いますが、コードのnicknameの値を変えても同じエラーが発生してしまうので
どう対処したらエラーが解消されるのかどなたか教えていただけないでしょうか?実行したコード、エラーの内容は以下になります。
(specファイルを実行した時のエラー?テストが通らない状況です。)
実行したコード

[vagrant@localhost chibi]$ bin/rspec -t performance spec/features/staff/message_management_spec.rb

発生したエラー

Running via Spring preloader in process 15535 Run options: include {:performance=>true} F Failures: 1) メッセージ管理機能 メッセージツリーの表示 Failure/Error: let!(:message1) { create(:customer_message, parent: reply1) } ActiveRecord::RecordNotUnique: Mysql2::Error: Duplicate entry 'クロダイ' for key 'index_customers_on_nickname': INSERT INTO `customers` (`email`, `email_for_index`, `family_name`, `given_name`, `family_name_kana`, `given_name_kana`, `nickname`, `gender`, `birthday`, `hashed_password`, `created_at`, `updated_at`, `birth_year`, `birth_month`, `birth_mday`) VALUES ('member2@example.jp', 'member2@example.jp', '山田', '太郎', 'ヤマダ', 'タロウ', 'クロダイ', 'male', '1970-01- 01', '$2a$10$5q3obl3PCcvN5N4C3BtC2OouSJ/1.TbqEBLH7qU8fL2kx7ZeUpv8a', '2017-08-28 05:44:45', '2017-08-28 05:44:45', 1970, 1, 1) # ./spec/features/staff/message_management_spec.rb:9:in `block (2 levels) in <top (required)>' # -e:1:in `<main>' # ------------------ # --- Caused by: --- # Mysql2::Error: # Duplicate entry 'クロダイ' for key 'index_customers_on_nickname' # ./spec/features/staff/message_management_spec.rb:9:in `block (2 levels) in <top (required)>' Finished in 0.9107 seconds (files took 0.53838 seconds to load) 1 example, 1 failure Failed examples: rspec ./spec/features/staff/message_management_spec.rb:20 # メッセージ管理機能 メッセージツリーの表示

読み込んだコード

FactoryGirl.define do factory :customer_message do subject 'Subject' body "Body.\nBody." customer end factory :staff_message do subject 'Subject' body "Body.\nBody." parent { FactoryGirl.create(:customer_message) } staff_member end end
require 'rails_helper' feature 'メッセージ管理機能' do include FeaturesSpecHelper include PerformanceSpecHelper let(:staff_member) { create(:staff_member) } let!(:root_message) { create(:customer_message, subject: 'Hello') } let!(:reply1) { create(:staff_message, parent: root_message) } let!(:message1) { create(:customer_message, parent: reply1) } let!(:message2) { create(:customer_message, parent: reply1) } let!(:reply2) { create(:staff_message, parent: message1) } let!(:reply3) { create(:staff_message, parent: message1) } let!(:message3) { create(:customer_message, parent: reply3) } before do switch_namespace(:staff) login_as_staff_member(staff_member) end scenario 'メッセージツリーの表示', :performance do |example| visit staff_message_path(message1) expect(page).to have_css('h1', text: 'メッセージ詳細') expect(page).to have_css('li a', text: 'Hello') elapsed = Benchmark.realtime do 100.times do visit staff_message_path(message1) end end write_to_performance_log(example, elapsed) expect(elapsed).to be < 100.0 end end

エラー発生のコード

FactoryGirl.define do factory :customer do sequence(:email) { |n| "member#{n}@example.jp" } family_name '山田' given_name '太郎' family_name_kana 'ヤマダ' given_name_kana 'タロウ' nickname 'クロダイ' #この値を変えても同じエラー発生してしまいます。 password 'pw' birthday Date.new(1970, 1, 1) gender 'male' association :home_address, strategy: :build #association :work_address, strategy: :build end end

単純に解決できることとお見ますが、未熟者の自分ではどうすればいいのかわかりません。どなたか教えてください。お願いします。

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

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

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

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

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

guest

回答1

0

自己解決

原因は不明のままですが、動作チェックには影響が無いので保留にします。

投稿2017/08/29 06:52

koume

総合スコア458

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問