2017-09-18 15 views
0

私は移行ファイルにこれを追加すると、それはRSpecのテストを壊す追加:ADD_INDEX休憩 '倍' イテレータ

移行:

add_index :SurveyResponses, [:ID, :QuestionID, :AnswerID, :LastEditedTimestamp ], unique: true, name: 'short_sr' 

RSpecのテスト:

5.times do |index| 
    @org.survey_responses << create(:survey_response) 
end 

add_indexはコメントアウトされていますが、破損しません。 私はちょうちょの中にいて、ちょうど@org.survey_responses << create(:survey_response)に入ると、それも壊れません。私が5xイテレータを使用すると、それだけが壊れます。

エラーメッセージ:

ActiveRecord::RecordNotUnique: Mysql2::Error: Duplicate entry '18001-EML_Organization_ProductSurvey-InstitutionProvidesLayPension' for key 'short_sr': UPDATE `SurveyResponses` SET `BlahOID` = 18001, `OrganizationOID` = 18001 WHERE `SurveyResponses`.`ResponseID` = 33014 

注:私はここに名前を変更しましたが、それらについて

+0

エラーは何ですか? – Mohanraj

+0

そのMySQLの 入力エラーを複製 '' 'はActiveRecord :: RecordNotUnique:Mysql2 ::エラー:重複エントリーキー 'short_sr' の '18001-EML_Organization_ProductSurvey-InstitutionProvidesLayPension':UPDATE' SurveyResponses' SET 'BlahOID' = 18001、' OrganizationOID' = 18001 WHERE 'SurveyResponses'.ResponseID' = 33014''' 私は 'short_sr'列をいくつかどのようにシーケンスする必要があると仮定していますか? – minlingzhao

答えて

0

を心配しないでください、私はあなたの工場で想定していますあなたはshort_srに設定された静的な値を持っている、または重複を作成することができる何らかの方法で現在生成されています。