Ruby-on-rails Rails:form_for 和单选按钮

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/15640470/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-02 21:41:14  来源:igfitidea点击:

Rails: form_for and radio buttons

ruby-on-railsform-for

提问by dennismonsewicz

I have the following in my form_for

我有以下内容 form_for

<div class="multiple_students">
        <%= f.label :multiple_classes, "Do you teach multiple classes?" %>
        <%= f.radio_button :multiple_classes, 1, checked: @user.multiple_classes?, class: 'multiple_classes', data: { question: 'What is your average class size?' } %> <%= f.label :multiple_classes, "Yes", class: 'multiple_classes' %>
        <%= f.radio_button :multiple_classes, 0, checked: @user.multiple_classes?, class: 'multiple_classes', data: { question: 'How many kids do you teach?' } %> <%= f.label :multiple_classes, "No", class: 'multiple_classes' %>
    </div>
    <div class="number_of_students hide">
        <%= f.label :students %>
        <%= f.text_field :students, :class=>"student_count required digits" %>
    </div>

For some reason the "No" is ALWAYS checked even if the multiple_classesattribute on the user is selected a true in the database (multiple_classesis a boolean type in the database)

出于某种原因,即使multiple_classes用户的属性在数据库中选择为真(数据库multiple_classes中的布尔类型),也始终检查“否”

回答by Sri

Ok if you want to use only the radio_buttons, check the following and let me know if thats worked.

好的,如果您只想使用 radio_buttons,请检查以下内容并让我知道这是否有效。

<%= f.radio_button :multiple_classes, "1", checked: @user.multiple_classes?, class: 'multiple_classes', data: { question: 'What is your average class size?' } %> <%= f.label :multiple_classes, "Yes", class: 'multiple_classes' %>
<%= f.radio_button :multiple_classes, "0", checked: @user.multiple_classes?, class: 'multiple_classes', data: { question: 'How many kids do you teach?' } %> <%= f.label :multiple_classes, "No", class: 'multiple_classes' %>

put the 1and 0with quotes and try....

1and0加引号并尝试....

Its not an answer... its only an idea...

它不是一个答案......它只是一个想法......

回答by rakvium

The problem with always checked "No" is in a typo.

始终选中“否”的问题在于打字错误。

If you revert @user.multiple_classes?for "No", checkbox will be unchecked if @user.multiple_classes?is true, so the next code chunk should work fine:

如果恢复@user.multiple_classes?"No",复选框将被选中,如果@user.multiple_classes?true,那么下一个代码块应该能正常运行:

<%= f.radio_button :multiple_classes, 1, checked: @user.multiple_classes?, class: 'multiple_classes', data: { question: 'What is your average class size?' } %> <%= f.label :multiple_classes, "Yes", class: 'multiple_classes' %>
<%= f.radio_button :multiple_classes, 0, checked: [email protected]_classes?, class: 'multiple_classes', data: { question: 'How many kids do you teach?' } %> <%= f.label :multiple_classes, "No", class: 'multiple_classes' %>