我构建的应用程序进行了调查程序和部分创建多个记录有两种型号:在嵌套形式
#ResponseSet
has_many :responses
accepts_nested_attributes_for :responses
#Response
belongs_to :response_set
belongs_to :answer
举个例子,你可能有一个选择题,你可以一个调查选择多个答案(你有什么类型的宠物?狗,猫,马)。
应该发生的情况是,当您提交调查问卷的答案时,会为每个答案在Response
表中添加一条记录。因此,如果您选择了狗,猫和马,则会添加3条记录,每条记录都通过:answer_id
引用Answer
型号。
我可以用一个答案来解答问题,但有多个答案的答案正在打破我的大脑。
它变得更加复杂,因为在单个调查中可能有多个问题,每个问题都有多个答案。
仅供参考,当前表单域的名称是这样的:
response_set[responses_attributes][0][answer_id]
response_set[responses_attributes][1][answer_id]
response_set[responses_attributes][2][answer_id]
生成此:
<%= form_for @response_set, :url => complete_survey_path do |f| %>
<%= f.fields_for :responses do |response| %>
<%= response.check_box :answer_id %>
<% end %>
<% end %>
所以这会是在response_attributes 3个不同的问题,为answer_id
领域。
你看过http://railscasts.com/episodes/196-nested-model-form-part-1集吗?它解释了同一主题的嵌套形式。 – felix
我确实。这不是同一个问题(据我所知)。我在问如何获取已经存在的记录的ID作为字段名称的一部分(参见我的示例)。 – Shpigford
如果'1234'是你的答案的'id','response_set [responses_attributes] [0] [1234] [answer_id]'看起来很像'response_set [responses_attributes] [0] [answer_id] [answer_id]''。这对我来说并不合适。 – Luke