In Ransack werde ich zusammenfassen, wie das Auswahlfeld verwendet wird.
Zunächst erkläre ich den "Auswahl" -Helfer zum Erstellen eines Auswahlfelds.
select(Objekt,Name des Anwesens,Elementinformationen,Möglichkeit,Elementattribut)
<%= f.select :name, [['sample1', 1], ['sample2', 2], ['sample3', 3]],
{include_blank: 'Keine Auswahl'}, class: 'sample' %>
(Vorausgesetzt, es befindet sich in form_for, enthält es kein Objekt.) Auf diese Weise wird, wenn Sie ein Array in das dritte Argument einfügen, "Wert 1 oder 2 als Parameter" gesendet.
Es gibt auch einen "nützlichen Helfer", um das Auswahlfeld weiter anzupassen.
options_for_select
Verwenden Sie options_for_select
, um den Anfangswert des Auswahlfelds
festzulegen.
options_for_select(Array/Hash,Möglichkeit)
<%= f.select :name, options_for_select({sample1: 1, sample2: 2, sample3: 3}, 1),
include_blank: true %>
Da "1" im zweiten Argument von options_for_select enthalten ist, wird `1 als Standardwert angezeigt. ``
options_from_collection_for_select
Wenn Sie eine Auswahl aus einem Modell erstellen möchten, können Sie bequem "options_from_collection_for_select" verwenden.
options_from_collection_for_select(Array von Objekten,Wertattribut,Textelement,Möglichkeit])
<%= f.select :name, options_from_collection_for_select(User.all, :id, :name , 1) %>
Jetzt können Sie den Namen im Benutzermodell automatisch zu einem Auswahlfeld machen.
Verwenden Sie als Beispiel options_from_collection_for_select
.
<%= search_form_for(@q, url: users_path, local: true) do |f| %>
<%= f.select :name_eq, options_from_collection_for_select(User.all, :id, :name , 1) %>
<%= f.button 'Suchen nach' %>
<% end %>
Auf die oben beschriebene Weise können Sie suchen, indem Sie den Namen im Benutzermodell als Auswahlfeld verwenden. Zusätzlich wird optional der Anfangswert festgelegt.
Der _eq
Teil von name_eq
heißt matcher
und Sie können nach gleichen Werten suchen.
Es gibt auch die folgenden Matcher.
matcher | Bedeutung |
---|---|
_eq | gleich |
noteq | Nicht gleich |
_cont | Einschließlich Wert(LIKE) |
_iteq | Weniger als |
_gteq | das ist alles |
Weitere Informationen finden Sie im Abschnitt "Search Matchers" von hier.
https://railsguides.jp/form_helpers.html https://shinmedia20.com/rails-select-box
Recommended Posts