单选按钮在params中总是“假”

时间:2015-05-05 17:18:24

标签: html ruby-on-rails ruby-on-rails-4 radio-button form-for

我不明白......单选按钮总是返回false,表单的其余部分都有效。我不得不为“radio_button”form_for辅助方法的第三个参数添加“false”,但这不应该影响结果。知道发生了什么事吗?

   <div class="control-group">
      <%= f.label :delivery_method, :class => 'control-label required' %>
      <div class="controls">
        <input type="hidden" name="auction_holder[delivery_method]" value="">
        <% ['Rail', 'Truck', 'Barge'].each_with_index do |t, i| %>
        <%= f.radio_button :delivery_method, false %> <%= f.label :delivery_method, t, :style => 'padding-right: 10px' %> 
        <%if (i + 1) % 3 == 0 %><br> <%end%>        
        <% end %>
        <%= f.label :other_delivery_method, "Other:", :style => 'padding-right: 10px' %><%= f.text_field :other_delivery_method, :class => 'other_field' %>
      </div>
    </div>

如果您需要任何其他代码可以提供帮助,请与我们联系。我已经坚持了一段时间。

更新方法:

  def update_registration
    organization = Organization.find(params[:organization_id])
    @application = organization.auction_application
    p params[:auction_application]
    p "start"
    if @application.update_attributes(params[:auction_application])
      redirect_to auctions_path
    else
      Rails.logger.info(@application.errors.messages.inspect)
    end
    p "end"

  end

1 个答案:

答案 0 :(得分:1)

您应将value属性设置为false,同时应设置checked属性:

<%= f.radio_button :delivery_method, '', checked: false %>

P.S。现在值设置为'',因此您应该设置为您想要的任何值。