我構建的應用程序進行了調查程序和部分創建多個記錄有兩種型號:在嵌套形式
#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