0

我一次将数据保存到两个不同的模型。这已成功完成。

这两个模型是相互关联的,因此其中一个模型在保存时会存储其他模型的 ID。如何在 QuestionnaireResult 中存储问卷调查表_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
4

2 回答 2

1

您应该使用 activerecord关联

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
于 2013-10-02T11:16:16.093 回答
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
于 2013-10-02T11:13:40.783 回答