【问题标题】:Nested radio buttons嵌套单选按钮
【发布时间】:2014-03-13 02:40:30
【问题描述】:

我对 Ruby on Rails 很陌生,我正在尝试做一些不那么复杂的事情,经过至少 4 小时的研究,我开始认为 Ruby 并不是那么神奇......

我有一个与模型链接的嵌套表单。有一个属于“问题”表的“答案”表。答案有一个“名称”和一个“正确”字段(布尔)。现在我有一个表格和

这是在循环(HAML)内:

= builder.radio_button :correct, true

因此,它会为每个字段生成一个用户可以填写的单选按钮。它有效,它填充了“答案”表中的“正确”字段(这里是“构建器”)

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

插图:

所以我开始尝试类似的东西

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

现在问题不在于 HTML,因为按钮来自一组。 RoR 不明白如何将其与模型链接起来......有什么解决方案可以制作单选按钮组,并且不会丢失将所有内容与模型链接的“智能”系统?

另一个插图:

谢谢,找了好久……

【问题讨论】:

  • 提交表单时params 的外观如何? answers[correct] 因为按钮的名称在我看来有点可疑。似乎应该是 answers[][correct]answers[(some index here)][correct]
  • 我检查了参数并得到了我在下面解释的想法,谢谢你:)

标签: ruby-on-rails ruby


【解决方案1】:

所以没有办法用 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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 2011-07-30
    • 2010-11-25
    • 2020-11-07
    • 2014-01-21
    • 1970-01-01
    相关资源
    最近更新 更多