2013-10-02 2 views
0

데이터를 두 개의 다른 모델에 동시에 저장합니다. 이것은 성공적으로 완료되었습니다.아직 저장되지 않은 항목의 ID 가져 오기

이 두 모델은 서로 연결되어 있으므로 대부분 저장시 다른 ID를 저장합니다. Questionnaire_contact_id를 QuestionnaireResult에 저장하는 방법은 무엇입니까?

class QuestionnaireResultsController < ApplicationController 

    def create 
    @questionnaire_result = QuestionnaireResult.new(params[:questionnaire_result]) 
    @questionnaire_contact = QuestionnaireContact.new(params[:questionnaire_contact]) 

    respond_to do |format| 
     if @questionnaire_result.save 
     @questionnaire_contact.save 
     format.html { redirect_to root_path, notice: 'Questionnaire was successfully submited.' } 
     format.json { render json: questionnaires_path, status: :created, location: questionnaires_path } 
     else 
     format.html { render action: "new" } 
     format.json { render json: questionnaires_path.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

end 

답변

1

당신은 사용해야 액티브 associations :

def create 
    @questionnaire_result = QuestionnaireResult.new(params[:questionnaire_result]) 
    @questionnaire_contact = @questionnaire_result.questionnaire_contacts.new(params[:questionnaire_contact]) 
    respond_to do |format| 
    if @questionnaire_result.save #this line will automatically save associated contact 
     # code 
    else 
     # code 
    end 
    end 
end 
+0

이 내 솔루션 다음 많은 청소기, 감사합니다 –

0

가이 일만큼 쉬웠 해결 :

class QuestionnaireResultsController < ApplicationController 

    def create 
    @questionnaire_result = QuestionnaireResult.new(params[:questionnaire_result]) 
    @questionnaire_contact = QuestionnaireContact.new(params[:questionnaire_contact]) 

    respond_to do |format| 
     @questionnaire_contact.save 
     @questionnaire_result.admin_questionnaire_contact_id = @questionnaire_contact.id 
     if @questionnaire_result.save 

     format.html { redirect_to root_path, notice: 'Questionnaire was successfully submited.' } 
     format.json { render json: questionnaires_path, status: :created, location: questionnaires_path } 
     else 
     format.html { render action: "new" } 
     format.json { render json: questionnaires_path.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

end 
관련 문제