[RUBY] Verwenden Sie die where-Methode, um anhand des Werts eines anderen Modells einzugrenzen.

Überblick

Ich habe mehrere Bedingungen mit der where-Methode eingegrenzt, daher werde ich sie zusammenfassen.

Was du machen willst

Ich möchte eine Information über das Entwicklermodell erhalten, das kurz vor der Erstellung des Produktmodells erstellt wurde.

Voraussetzungen

Produktmodell und Entwickler erstellen. Die beiden Modelle sind nicht zugeordnet. (Wagen Sie es hier) Das Entwicklermodell enthält Informationen (Developed_Product_Number) darüber, welche Art von Produkt hergestellt wurde. Das Produkt hat eine Produktnummer und diese beiden Werte sind gleich. (Wenn ja, lassen Sie es uns zuordnen, aber dieses Mal werden wir diese Bedingung verwenden.) Ich möchte den Wert des Entwicklers erhalten, der unmittelbar vor der Erstellung des Produkts von mehreren Entwicklern erstellt wurde, die dasselbe Produkt erstellt haben.

Implementierung

Lassen Sie uns den eigentlichen Code an die erste Stelle setzen.

product = Product.find(params[:id])


@Developer = Developer.where(developed_product_number: product.id).where('created_at < ?', product).order(created_at: :desc).limit(1) 

Es ist so. Ich werde erklären

product = Product.find(params[:id])

Rufen Sie die ID des Zielprodukts ab und weisen Sie sie dem variablen Produkt zu. Geben Sie hier den Wert ein, der durch Hinzufügen von Bedingungen zur Variablen @Developer eingegrenzt wurde.

@Developer = Developer.where(developed_product_number: product.id).where('created_at < ?', product).order(created_at: :desc).limit(1) 

Teilweise teilen.

@Developer = Developer.where(developed_product_number: product.number)

Hier wird die ID des früher erhaltenen variablen Produkts erhalten.

Dann die Werte eingrenzen.

where('created_at < ?', product).order(created_at: :desc).limit(1) 

Hier haben wir die Informationen mehrerer Entwickler erfasst, die vor der Erstellung des Produkts erstellt wurden, und die Informationen des ersten Entwicklers, der aus der absteigenden Reihenfolge zählt. Es ist ziemlich lange her, daher muss der Code hier in Bereiche unterteilt werden und so weiter.

Recommended Posts

Verwenden Sie die where-Methode, um anhand des Werts eines anderen Modells einzugrenzen.
[Schienen] Verwenden Sie die Auswahlmethode nicht nur, um die Spalten einzugrenzen!
Ausgabe der Verwendung der Slice-Methode
Verwendung der link_to-Methode
Verwendung der include? -Methode
Verwendung der Methode form_with
[Rails] Sprechen Sie darüber, wie Sie auf den Rückgabewert von where achten
[Schienen] Verwendung der Kartenmethode
[Java] Verwendung der toString () -Methode
So übergeben Sie den Wert an einen anderen Bildschirm
[Rails] Implementierungsverfahren der Funktion zum Markieren von Posts ohne Gem + die Funktion zum Eingrenzen und Anzeigen von Posts nach Tags
Wenn Sie die Methode außerhalb verwenden möchten
Verwendung der replace () -Methode (Java Silver)
[Ruby-Grundlagen] Verwendung der Slice-Methode
Übergeben Sie ein Argument an die Methode und erhalten Sie das Ergebnis der Operation als Rückgabewert
Ich möchte eine Methode einer anderen Klasse aufrufen
Ich war süchtig nach der Aufzeichnung des zugehörigen Modells
[Java] So erhalten Sie den Maximalwert von HashMap
[Rails] Ich weiß nicht, wie ich das Modell verwenden soll ...
Java: Verwenden Sie Stream, um den Inhalt einer Sammlung zu sortieren
So geben Sie ein Array für den Rückgabewert / das Rückgabeargument einer Methode in der CORBA IDL-Datei an
Verwendung der Getter / Setter-Methode (in Objektorientierung)
Verwendung des mit Tensorflow 2.0 trainierten Modells mit Kotlin / Java
Verwenden Sie collection_select, um die in Active_Hash gespeicherten Daten abzurufen
[Rails] Registrieren Sie sich mit Devise nach Attributen desselben Modells
Sie können das Problem lösen, indem Sie sich auf die beiden Artikel beziehen !!!
Ich möchte eine andere Desinfektionsmethode als Ansicht verwenden.
So ändern Sie den Einstellwert von Springboot Hikari CP
[Rails] So zeigen Sie eine Liste der Beiträge nach Kategorie an
Erweiterung des 4-Tier-Modells der von Eric Evans befürworteten Architektur
Verwenden Sie WHERE, um das mit der MySQL-Syntax berechnete Ergebnis abzurufen
Zusammenfassung der von der Spliterator-Merkmalsmethode #java zurückgegebenen Werte
[Rails] Bei der Beschreibung der Validierung ist Vorsicht geboten
Extrahieren Sie den eindeutig identifizierbaren Wert der von PostgreSQL erstellten Tabelle
Ich möchte die Methode des Controllers kennen, bei der die Ausnahme im ExceptionHandler von Spring Boot ausgelöst wurde