2014-03-13 129 views
0

我是Ruby on Rails的新手,我試圖做一些並不那麼複雜的事情,經過至少4個小時的研究,我開始認爲Ruby不是那麼神奇。 ..嵌套單選按鈕

我有一個與模型鏈接的嵌套窗體。有一個屬於「問題」表的「答案」表。答案有一個「名字」和一個「正確」字段(布爾)。現在我有一個形式和

這是一個循環(HAML)內:

= builder.radio_button :correct, true

所以產生每場的用戶可以填寫一個單選按鈕。它的工作原理和它填補了「答案」表(這是「建設者」這裏)的「正確」字段

事實上單選按鈕與「名稱」HTML屬性一起工作,RoR也使用它來鏈接所有與模型。我想讓只有一個單選按鈕組,並與每個單選按鈕一組......結束了

插圖:

enter image description here

於是我開始嘗試像

= builder.radio_button :correct, true, :name => "answers[correct]"

東西

現在問題不在於HTML,因爲按鈕來自一個組。 RoR不理解如何將它與模型鏈接起來......是否有任何解決方案來製作單選按鈕組,並且不會丟失將模型與模型鏈接起來的「智能」系統?

另一個例證:

enter image description here

謝謝,這已經有一段時間我在尋找......

+0

當提交表單時'params'看起來像什麼? '答案[正確]',因爲按鈕的名字對我來說看起來有點可疑。似乎應該像'答案[] [正確]'或'答案[(這裏有一些索引)] [正確]' –

+0

我檢查了參數,並得到了我下面解釋的想法感謝你:) –

回答

0

所以沒有辦法與RoR的系統自動做到這一點,但我得到了一個很好的解決方案。

我改變了我的代碼視圖(HAML)是這樣的:

= answer.label :correct, "It's the correct answer", :value => answer.options[:child_index] 
= answer.radio_button :correct, answer.options[:child_index], name: "question[answers_attributes][correct]" 

在我question_controller我只是把這個:

right_answer = params[:question][:answers_attributes][:correct] 
params[:question][:answers_attributes][right_answer][:correct] = true 

params[:question][:answers_attributes].delete :correct 

它得到正確的PARAMS和內transfert它在循環之後糾正一個。奇蹟般有效。如果任何人有嵌套單選按鈕組的問題,這裏有一個解決方案:)