我在搜索表单中使用ransack和radiobuttons:
<%= search_form_for @search, :html => {:class => "form-inline"} do |f| %>
<div class="field">
<%= f.radio_button :statusdate2_lt, Date.current %>
<%= f.label :statusdate2_lt, "Overdue" %>
<br/>
<br/>
<%= f.radio_button :salespaydate_null, "1" %>
<%= f.label :salespaydate_null, "Salespaydate empty" %>
<br/>
<br/>
<%= f.radio_button :status_gt, 0 %>
<%= f.label :status_gt, "Product aligned" %>
</div>
<br/>
<div class="action">
<%= f.submit "Select", class: "btn btn-primary" %>
<%= link_to "Reset", products_path, class: "btn btn-primary" %>
</div>
<% end %>
我得到了一个奇怪的行为。当按下选择按钮并重新加载页面时,其中两个按钮(第一个和第三个)保持按下状态。中间会忘记它而且没有被发现。然后传输并应用按钮的搜索过滤器。
页面加载后,相关的html看起来像这样(显然,我猜):
<input checked="checked" id="q_statusdate2_lt_2013-07-16" name="q[statusdate2_lt]" type="radio" value="2013-07-16" />
<label for="q_statusdate2_lt">Overdue</label>
<br/>
<br/>
<input id="q_salespaydate_null_1" name="q[salespaydate_null]" type="radio" value="1" />
<label for="q_salespaydate_null">Salespaydate empty</label>
<br/>
<br/>
<input checked="checked" id="q_status_gt_0" name="q[status_gt]" type="radio" value="0" />
<label for="q_status_gt">Product aligned</label>