0

我有一个名为“step”的模型。在我的步骤模型中,我允许用户创建一个多项选择题。结果,我有四个数据库列,选择一到四。我正在尝试获取这些数据库列并将它们以带有单选按钮的问题的形式放置。我的问题是 @step.choice_one 没有显示(其他人也没有)。此外,单选按钮显示,但它们彼此不相关,因为它允许我单击每个按钮而不禁用其他按钮。任何帮助将不胜感激。

<%= fields_for :steps do |f| %>
    <div class="multipleChoice">
        <div>
          <%= f.label :choice_one, "1)" %>
          <%= f.radio_button :choice_one, @step.choice_one, :checked => true, class: 'icheck' %>
        </div>
        <div>
          <%= f.label :choice_two, "2)" %>
          <%= f.radio_button :choice_two, @step.choice_two, class: 'icheck' %>
        </div>
        <div>
          <%= f.label :choice_three, "3)" %>
          <%= f.radio_button :choice_three, @step.choice_three, class: 'icheck' %>
        </div>
        <div>
          <%= f.label :choice_four, "4)" %>
          <%= f.radio_button :choice_four, @step.choice_four, class: 'icheck' %>
        </div>
    </div>
<% end %>
4

2 回答 2

1

这里的问题是您对一组 4 个不同的字段使用单选按钮组,而不是在一个字段上使用 4 个选项。所以 Rails 赋予了每个不同的name属性。

尝试给每个radio_button相同的名称:'step',例如:

<%= fields_for :steps do |f| %>
    <div class="multipleChoice">
        <div>
          <%= f.label :choice_one, "1) #{@step.choice_one}" %>
          <%= f.radio_button :choice_one, @step.choice_one, {name: 'step', checked: true, class: 'icheck'} %>
        </div>
        <div>
          <%= f.label :choice_two, "2) #{@step.choice_two}" %>
          <%= f.radio_button :choice_two, @step.choice_two, {name: 'step', class: 'icheck'} %>
        </div>
        <div>
          <%= f.label :choice_three, "3) #{@step.choice_three}" %>
          <%= f.radio_button :choice_three, @step.choice_three, {name: 'step', class: 'icheck'} %>
        </div>
        <div>
          <%= f.label :choice_four, "4) #{@step.choice_four}" %>
          <%= f.radio_button :choice_four, @step.choice_four, {name: 'step', class: 'icheck'} %>
        </div>
    </div>
<% end %>

我使用1through4作为值,但你可以选择你想要的。

于 2013-09-09T20:49:46.587 回答
0

单选按钮的name属性必须与其他单选按钮的属性匹配才能正确配对;我不知道 ruby​​ 的语法,但是我看到您在除 之外的所有地方都使用了 4 个不同的名称class,所以我怀疑您将choice_one、choice_two 等设置为name:)

于 2013-09-09T20:44:31.947 回答