Rails在多个字段上形成相同的值

时间:2013-11-25 18:09:16

标签: ruby-on-rails-3

我有一个使用复选框和文本区域的表单。当我提交表单时,它会提交复选框(1或0)的值,而不是文本区域中的数据。以下是我的表格。

        <%= form_for(:add_kids) do |kid|%>
                <div class="kidsname">
                    <%= kid.text_field :first_name, placeholder: "First", class: "name" %>
                    <%= kid.text_field :last_name, placeholder: "Last", class: "name" %>
                </div>
            <br>
                <div class="allergens">
                <h4>Allergens/Asthma:</h4>
                    <div class="allergens-list">
                        <ul>
                            <li>
                                <%= kid.check_box :soy %>
                                <%= kid.label :soy %>
                                <%= kid.check_box :peanuts %>
                                <%= kid.label :peanuts %>
                                <%= kid.check_box :wheat %>
                                <%= kid.label :wheat %>
                            </li>
                            <li>
                                <%= kid.check_box :milk %>
                                <%= kid.label :milk %>
                                <%= kid.check_box :nuts %>
                                <%= kid.label :nuts, "Tree Nuts" %>
                                <%= kid.check_box :eggs %>
                                <%= kid.label :eggs %>
                            </li>
                            <li class="otherNeeds">
                                <%= kid.check_box :other, {class: "other"} %>
                                <%= kid.label :other, "Other Needs" %>
                                <div class="concernsContainer">
                                    <h3>Please type your kid's needs or concerns</h3>
                                    <div class="concernsBox">
                                        <%= kid.text_area :other, placeholder: "Type here...", maxlength: 500, disabled: 'disabled' %>
                                    </div>
                                </div>
                            </li>
                        </ul>
                    </div>
                </div>
        <% end %>

2 个答案:

答案 0 :(得分:1)

您同时拥有与同一属性相关的check_box和textarea - :other 这些属性会根据控件的属性name传递给rails app,因此如果您检查textarea的名称和复选框的名称,您会发现它们是相同的。

我假设你想要获得这两个属性,所以你需要在那里指定不同的名称。无论如何,有关您希望在params中获得什么内容的更多详细信息将非常有用

答案 1 :(得分:0)

您是否尝试过form_for api语法?

<%= form_for :person do |f| %>
  First name: <%= f.text_field :first_name %><br />
  Last name : <%= f.text_field :last_name %><br />
  Biography : <%= f.text_area :biography %><br />
  Admin?    : <%= f.check_box :admin %><br />
<%= f.submit %>
<% end %>