1

我正在为我的网站构建一个问卷调查,并且我的模型设置如下:

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

Answers是设置的答案,它们可以是 Yes、No 或一个句子,Responses是一个嵌套资源,UserApplication因此当我在UserApplicationsController我构建响应中的新操作时,根据问题的数量,我可以f.fields_for在新表单中使用。当它呈现时,我希望嵌套响应具有单选按钮,这些按钮具有答案的 id。因此,当提交表单时,嵌套响应会收到所选答案的 id。我只是想不出最好的方法来做到这一点。目前我正在这样做:

用户应用控制器

  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]})

这感觉有点 hacky,因为当用户编辑应用程序时,之前答案的选择框没有被选中。我试图尽可能地解释我的问题。如果有人能理解我想要做什么,那么任何帮助都将不胜感激!如果您需要知道什么,请询问!

谢谢

托尼

4

0 回答 0