Ich verwende Smart listing Edelstein für Echtzeit-Filterung. Das folgende ist ein einfaches Formular ohne eine Submit und URL.Schienen - Übergeben Sie mehrere Kontrollkästchen Werte über Parameter
<%= smart_listing_controls_for(:search) do %>
<%= simple_form_for :search do |f| %>
<%= f.input :certificates, collection: Certificate.all, :as => :check_boxes, include_hidden: false, :input_html => {:multiple => true} %>
<% end>
<% end>
Der obige Code generiert mehrere Kontrollkästchen mit 'Certificate ID' als Werte. Sobald eines der Kontrollkästchen aktiviert ist, sendet Smart Listing eine Anfrage an den Controller mit den Parametern.
Parameters: {"utf8"=>"✓", "search_smart_listing"=>{"_"=>"1", "page"=>"", "per_page"=>"10"}, "authenticity_token"=>"z25rULU5JeeWcEZdpsy0+bz7OJFDWPmXrVGnzPvdG0cjM0ufpc3ydB9+5GywDQkUmcm6RGJnF0C4Yrd0sWpJ6g==", "search"=>{ "certificates"=>["6"]}}
Das Problem ist, wenn ich mehrere Kontrollkästchen wählen, hat die Zertifikate Array nur den letzten Wert und nicht alle Werte Boxen Check-ausgewählt.
Wenn ein Kontrollkästchen aktiviert und deaktiviert ist, bleibt der Array-Wert des Zertifikats in den Parametern gleich. Ich möchte, dass der Wert aus dem Array "certificates" in den Parametern entfernt wird, wenn das Kontrollkästchen deaktiviert ist und das Array "certificates" nur alle ausgewählten Kontrollkästchenwerte enthalten soll.
Der folgende Code ist der HTML-Code, der für eines der mehreren Kontrollkästchen generiert wurde.
<span class="checkbox">
<label for="search_certificates_5">
<input class="check_boxes required" type="checkbox" value="5" name="search[certificates][]" id="search_certificates_5">
Certificate 1
</label>
</span>
Vielen Dank im Voraus :)
Danke Rodrigo für die Antwort. Aber es hat nicht funktioniert. Das gleiche Problem wie zuvor. Nur ein Wert im Zertifikats-Array. Hier sind die Parameter nach dem Entfernen der einfachen Form 'Parameter: {" Utf8 "=>" ✓ "," search_smart_listing "=> {" _ "=>" 1 "," Seite "=>" "," per_page "= > "10"}, "search" => {"certificates" => ["6"]}} ' – Mahendhar
@Mahendhar Ich habe meine Antwort aktualisiert. Sie sollten immer noch 1 Formular verwenden, aber es gibt auch ein Problem mit der aktuellen Version. Überprüfe meine Antwort. –
Vielen Dank @Rodrigo, es funktioniert! – Mahendhar