我一次将数据保存到两个不同的模型中。这已成功完成。
这两个模型相互关联,因此最常将其他ID存储在保存中。如何在QuestionnaireResult中存储questionnaire_contact_id?
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
答案 0 :(得分:1)
您应该使用activerecord 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
答案 1 :(得分: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