我正在使用searchlogic对我的结果集进行搜索。
以下是我的搜索表单,其中包含复选框。
<% form_for @search do |f| %>
<div class="searchbox" style="text-align: left; width: 100%">
<span> Status: </span>
Incomplete - <%= f.check_box :sub_status_fk_equals_any, {:name => "search[sub_status_fk_equals_any][]"}, "51" %>
Complete - <%= f.check_box :sub_status_fk_equals_any, {:name => "search[sub_status_fk_equals_any][]"}, "52" %>
Under Review - <%= f.check_box :sub_status_fk_equals_any, {:name => "search[sub_status_fk_equals_any][]"}, "53" %>
Approved - <%= f.check_box :sub_status_fk_equals_any, {:name => "search[sub_status_fk_equals_any][]"}, "54" %>
<%= f.submit "Submit"%>
</div>
<% end %>
只要选中了复选框,但上面的代码工作正常,但如果所有复选框都为空,而不是返回所有行,则不会返回任何内容。
在我的地址栏中,会显示以下参数:
http://localhost/sub_test/?
search[order]=descend_by_sub_entry_date&
search[sub_status_fk_equals_any][]=0&
search[sub_status_fk_equals_any][]=0&
search[sub_status_fk_equals_any][]=0&
search[sub_status_fk_equals_any][]=0&
commit.x=15&commit.y=18&commit=Search
如果没有选中任何复选框,则传递0。
如果没有选择任何内容,如何返回所有行?
答案 0 :(得分:0)
好的,找到了解决方案。您需要为unchecked_value
传递'nil'Incomplete - <%= f.check_box :sub_status_fk_equals_any, {:name =>
"search[sub_status_fk_equals_any][]"}, "51", nil %>
Complete - <%= f.check_box :sub_status_fk_equals_any, {:name => "search[sub_status_fk_equals_any][]"}, "52", nil %>
Under Review - <%= f.check_box :sub_status_fk_equals_any, {:name => "search[sub_status_fk_equals_any][]"}, "53", nil %>
Approved - <%= f.check_box :sub_status_fk_equals_any, {:name => "search[sub_status_fk_equals_any][]"}, "54", nil %>
希望这对其他人有帮助