0

検索ロジックを使用して、結果セットで検索を実行しています。

以下は、チェックボックスを含む検索フォームです。

<% 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 を渡します。

何も選択されていない場合、すべての行を返すにはどうすればよいですか?

4

1 に答える 1

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 %> 

これが他の誰かの助けになることを願っています

于 2012-12-21T14:47:30.187 に答える