Ich habe eine Rails App und Ruby 2.3.3.Rails Parsen Ransack Parameter mit dem Senden
Für meine Formulare verwende ich simple_form, Ransack für die Filterung und will_paginate.
Ich habe 'set_per_page' Dropdown, so dass Benutzer auswählen können, wenn die 20, 200 oder 200 Beiträge in der Tabelle sehen möchten.
= form_tag({ action: "index"}, { method: "get", id: "post_index"}) do
=select_tag :per_page, otions_for_select([20,200,2000], params[:per_page].to_i)
Meine Javascript ist wie folgt:
$(document).ready(function() {
$("#per_page").change(function() {
$("#post_index").submit();
});
});
Also, wenn ein Benutzer auf das Drop-Down ändert, wird es die Aktion ‚Index‘ wieder machen und setzt den per_page Parameter auf den gewählten Wert. Soweit so gut, aber wenn ich die Ransack-Parameter einreiche, sind die weg.
Wenn ich mit Ransack filtern, ist die URL:
http://localhost:3001/posts?q[name_eq]=Foo&q[title_eq]=Bar
Wenn ich die 'per_page' Drop-Down wählen, wird meine URL werden:
http://localhost:3001/posts?per_page=200
Wie kann ich die Parameter des parsen Ransack call, in den per_page Aufruf. Also muss ich eine URL wie folgt aus:
http://localhost:3001/posts?q[name_eq]=Foo&q[title_eq]=Bar&per_page=200
Edit:
Ich versuchte, die Ransack Parameter in einem versteckten Feld wie folgt hinzuzufügen:
= form_tag({ action: "index"}, { method: "get", id: "post_index"}) do
=select_tag :per_page, otions_for_select([20,200,2000], params[:per_page].to_i)
=hidden_field_tag :q, params[:q] if params[:q].present?
Aber dies führt zu einem Fehler:
undefined method `merge' for "#<ActionController::Parameters:0x175c6110>":String
Das könnte eine Option sein, aber ich habe ein Layout, wo die Ransack fil tering ist in einem Modal.Das Drop-down-Menü "per_page" befindet sich direkt über der Tabelle. Ich weiß, dass es irgendwie funktionieren muss, dass ich das Layout nicht ändern muss, damit es funktioniert. – Jerry
Machen Sie eine Bearbeitung zu beantworten –
Jetzt bekomme ich es! Nett! Wird meine Frage mit dem anwser aktualisieren. Vielen Dank! – Jerry