Ich erstellte eine Ansicht zum Filtern und Sortieren activities
Tabelle auf der index
Aktion. Parameter für Felder, die nach Array sortiert werden sollen und die Anforderung an params[:sort]
(== ["created_at"]
, zum Beispiel) übergeben werden sollen.Ruby on rails: hidden_field_tag Array in String in Parameter konvertieren
das funktioniert und meine params nach erfolgreicher Anfrage lautet:
{"direction"=>"desc","sort"=>["created_at"], "controller... etc }
Dann habe ich Dropbox für Filtertabelle und hidden_field_tag sortierbar params passieren wie folgt aus:
=form_tag actitvites_path, method: "get"
=radio_button_tag...
=radio_button_tag...
=select_tag...
=hidden_field_tag :direction, params[:direction]
=hidden_field_tag :sort, params[:sort]
=submit_tag "Filter", name: nil
Aber hidden_field_tag
zum Sortieren konvertieren Anfangs Wert params[:sort]
== ["created_at"]
zu einfach "created_at"
und ich habe keine Ahnung warum. Das ist eine Frage. Was ich in html erhalten:
<input type="hidden" name="direction" id="direction" value="asc">
<input type="hidden" name="sort" id="sort" value="created_at">
nehmen 'name = "sort []"' und prüfen Sie, '' – Sravan
Danke! Es funktioniert. Aber können Sie erklären, was dort passiert? ... weil ich einen Blick in Docs auf hidden_field_tag Methode und finde nichts, was Konvertieren von Argumenten. – fomkin
Wenn Sie ein Array von Werten in eine Eingabe aufnehmen wollen, sollten Sie zu html sagen, dass es Array-Werte akzeptiert, also sagt 'name =" sort [] "' dem Dom, dass er Array-Werte annehmen soll. – Sravan