参数中的单选按钮总是 "false"

Radio buttons always "false" in params

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

   <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

您将 value 属性设置为 false 而您本应设置 checked 属性:

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

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