1

私は自分のウェブサイトのアンケートを作成していて、次のようにモデルを設定しています。

Question - has_many :answers
Answer - belongs_to :question
Response - belongs_to :answer, :user_application
UserApplication - has_many :responses

Answers答えが設定されている場合は、はい、いいえ、または文である可能性がありますResponses。ネストされたリソースであるため、質問の数に基づいて応答を作成し、新しいフォームで使用できるようにUserApplication、新しいアクションを実行します。それがレンダリングされるとき、ネストされた応答に、回答のIDを持つラジオボタンを持たせたいです。したがって、フォームが送信されると、ネストされた応答は選択された回答のIDを受け取ります。私はこれを行うための最良の方法を理解することができません。現在、私は次のようにしています。UserApplicationsControllerf.fields_for

UserApplicationController

  def new
    @user_application = UserApplication.new
    @questions = Question.all

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @user_application }
    end
  end

新しいフォーム

= form_for @user_application do |f|
  - @questions.each_with_index do |question, idx|
    = question.content
    .control-group
      .controls
        = select_tag "user_application[responses_attributes][#{idx}][answer_id]", options_for_select(question.answers.map {|u| [u.content,u.id]})

ユーザーがアプリケーションを編集するときに、前の回答の選択ボックスが選択されていないため、これは少しハッキーな感じがします。私は自分の問題を可能な限り説明しようとしました。誰かが私がやろうとしていることを理解できれば、どんな助けもいただければ幸いです!あなたが何かを知る必要があるならば、尋ねてください!

ありがとう

トニー

4

0 に答える 0