嵌套的单选按钮

时间:2014-03-13 02:40:30

标签: ruby-on-rails ruby

我对Ruby on Rails很陌生,我尝试做一些并不复杂的事情,经过至少4个小时的研究,我开始认为Ruby不是& #39;太神奇了......

我有一个与模特相关联的嵌套表格。有"答案"表格属于"问题"表。答案得到了一个名字"和#34;正确"场(布尔)。现在我有了表格和

这是一个循环(HAML):

= builder.radio_button :correct, true

因此,每个字段生成一个单选按钮,用户可以填写。它起作用,它填补了正确的" "答案"中的字段table(这是" builder" here)

事实上,单选按钮与" name" RoR也使用HTML属性将所有内容与模型链接起来。我想只制作一个单选按钮组,每个单选按钮最终只有一组...

插图:

enter image description here

所以我开始尝试像

这样的事情

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

现在问题不在于HTML,因为按钮来自一个组。 RoR不知道如何将它与模型联系起来......是否有任何解决方案可以制作一个单选按钮组并且不会丢失" smart"将所有东西与模型联系起来的系统?

另一个例子:

enter image description here

谢谢,我已经有一段时间了,我正在寻找...

1 个答案:

答案 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

它得到正确的参数并在循环后将其转移到正确的参数中。奇迹般有效。如果有任何人遇到嵌套单选按钮组的问题,这是一个解决方案:)