[RUBY] [Rails] Durchsuchen von Spalten verwandter Modelle (Eltern und Kinder) in Ransack

Was Sie erreichen wollen

Ich möchte sogar die Spalten des Modells durchsuchen, die sich auf ein Modell beziehen (verschachtelt)

Insbesondere möchte ich nicht nur den Geschäftsnamen des Geschäfts für gebrauchte Kleidung suchen, sondern auch den Bereichsnamen (eins zu viele) und den Markennamen (viele zu viele).

スクリーンショット 2020-07-11 17.45.47.png

Fazit

** Geben Sie als Elementnamen des Formular-Tags "verwandter Modellname_bezogener Modellspaltenname" an **

Das verwandte Modell ist "to 1" (gehört zu: hoge und has_one: fuga)

Wenn Sie beispielsweise den Bereichsnamen des dem Geschäftsmodell zugeordneten Bereichsmodells als Suchbedingung verwenden möchten. = f. Formularhelfer: Sei Elementname des Elementnamens Bereichsbereichsname_cont`.

Bei Demontage Bereich → Zugehöriger Modellname Name → Spaltenname des zugehörigen Modells cont → Prädikat, das eine teilweise Übereinstimmung angibt

Es wird sein.

= search_form_for(@q, url: shop_search_path) do |f|
  = f.text_field :area_name_cont
  #Bereichsname des Bereichsmodells, das dem Geschäftsmodell zugeordnet ist(name)

Verwandte Modelle sind "zu viele" (has_many: hoges, etc.)

Zum Beispiel, wenn Sie den Markennamen des mit dem Shop-Modell verknüpften Markenmodells als Suchbedingung verwenden möchten. = f. Form Helper: Sei Elementname des Elementnamens Markenname_cont`.

Bei Demontage Marken → Zugehöriger Modellname * shop has_many: Marken, also Plural Name → Spaltenname des zugehörigen Modells cont → Prädikat, das eine teilweise Übereinstimmung angibt

Es wird sein.

= search_form_for(@q, url: shop_search_path) do |f|
  = f.text_field :brands_name_or_genres_name_cont
  #Markenname des mit dem Geschäftsmodell verknüpften Markenmodells(name)
  #Genre-Name des Genre-Modells, das dem Shop-Modell zugeordnet ist(name)
  #* Beachten Sie, dass bei mehreren verknüpften Modellen der Modellname Plural ist.

Übrigens können Sie mehrere Spalten durchsuchen, indem Sie Spaltennamen mit _or_ usw. verbinden.

Informationen zur tatsächlichen Verwendung von Ransack finden Sie in Artikeln wie [Rails] - Zusammenfassung der verschiedenen Methoden zur Erstellung von Suchformularen mit Ransack.

Assoziation zwischen Modellen

スクリーンショット 2020-07-11 18.17.14.png

shop.rb


#Ladenmodell
  belongs_to :area, optional: true
  has_many :shop_genres
  has_many :shop_brands
  has_many :genres, through: :shop_genres
  has_many :brands, through: :shop_brands

area.rb


#Flächenmodell
  has_many :shops

brand.rb


#Markenmodell
  has_many :shop_brands
  has_many :shops, through: :shop_brands

shop_brand.rb


# shop_Markenmodell
  belongs_to :shop
  belongs_to :brand

shop_genre.rb


# shop_Genre-Modell
  belongs_to :shop
  belongs_to :genre

So finden Sie den Verein heraus

Es ist zweckmäßig, eine Methode namens "ransackable_associations" zu verwenden.

** 1. Schienen c ** im Anwendungsverzeichnis

terminal


#Führen Sie das entsprechende Anwendungsverzeichnis aus

$ rails c
Running via Spring preloader in process 61541
Loading development environment (Rails 5.0.7.2)
[1] pry(main)> 

** 2. Führen Sie model name.ransackable_associations aus **

terminal


#Dieses Mal möchte ich die Beziehung zum Shop-Modell untersuchen, also Shop.ransackable_Wenn Sie Assoziationen sagen
Das dem Shop-Modell zugeordnete Modell wird angezeigt
[1] pry(main)> Shop.ransackable_associations
=> ["user", "area", "shop_genres", "shop_brands", "genres", "brands"]
[2] pry(main)> 

Referenz

[73 Rezepte zum einfachen Erstellen eines Suchformulars mit Ransack -026-Bezug](http://nekorails.hatenablog.com/entry/2017/05/31/173925#026-%E9%96%A2%E9%80% A3) So durchsuchen Sie mehrere Spalten in übergeordneten und untergeordneten Tabellen mit Ransack

Recommended Posts

[Rails] Durchsuchen von Spalten verwandter Modelle (Eltern und Kinder) in Ransack
[Rails] So zeigen Sie übergeordnete Informationen in der untergeordneten Ansicht in verschachtelten Beziehungen an
[Rails] Verwendung von Auswahlfeldern in Ransack
Verwendung von JQuery in Rails 6 js.erb
So schreiben Sie eine Datumsvergleichssuche in Rails
[Webpacker] Zusammenfassung der Installation von Bootstrap und jQuery in Rails 6.0
So löschen Sie große Datenmengen in Rails und Bedenken
So installieren Sie jQuery in Rails 6
So installieren Sie Swiper in Rails
[Rails] Ich möchte Daten verschiedener Modelle in einem Formular senden
So ändern Sie den App-Namen in Rails
So fügen Sie ein Video in Rails ein
Verwendung von MySQL im Rails-Tutorial
So aktualisieren Sie verwandte Modelle mit accept_nested_attributes_for
[Rails] So konfigurieren Sie das Routing in Ressourcen
So implementieren Sie Ranking-Funktionen in Rails
Verwendung von credentials.yml.enc aus Rails 5.2
graphql-ruby: So erhalten Sie den Namen der Abfrage oder Mutation im Controller Hinweis
So erstellen Sie eine eindeutige Datenkombination in der Schienen-Zwischentabelle
Zusammenfassung der Auswahl von Elementen in Selen
[Rails] Implementierung der Suchfunktion mit Gem's Ransack
Wie man Rails allgemein ins Japanische übersetzt
[Rails] So implementieren Sie einen Unit-Test eines Modells
So trennen Sie .scss nach Controller in Rails
So fügen Sie die html.erb-Klasse in Rails bedingt hinzu
So erstellen Sie eine Suchbedingung mit mehreren Modellen
So implementieren Sie eine ähnliche Funktion in Rails
So erstellen Sie einfach ein Pulldown mit Rails
[Rails] Verwendung von PostgreSQL in einer Vagrant-Umgebung
So überprüfen Sie Rails-Befehle im Terminal
So installieren Sie Docker in der lokalen Umgebung einer vorhandenen Rails-App [Rails 6 / MySQL 8]
[Rails] So zeigen Sie die Wettervorhersage der registrierten Adresse auf Japanisch mit OpenWeatherMap an
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
So implementieren Sie die Gastanmeldung in 5 Minuten im Rails-Portfolio
So implementieren Sie eine nette Funktion in Ajax mit Rails
[Ruby on Rails] Wie schreibe ich eine Enumeration auf Japanisch?
[Rails, JS] So implementieren Sie die asynchrone Anzeige von Kommentaren
[Rails] So ändern Sie den Spaltennamen der Tabelle
[Ruby On Rails] So setzen Sie die Datenbank in Heroku zurück
[So fügen Sie ein Video mit Rails in haml ein]
Verwendung von CommandLineRunner im Spring Batch von Spring Boot
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
Abfragen von Arrays in jsonb mit Rails + postgres
[Rails 6] So legen Sie ein Hintergrundbild in Rails [CSS] fest
[Rails] So erhalten Sie den Inhalt starker Parameter
Zusammenfassung der Implementierung von Standardargumenten in Java
[Rails] So laden Sie JavaScript in einer bestimmten Ansicht
(Ruby on Rails6) So erstellen Sie ein Modell und eine Tabelle