Dies ist keine Hausaufgabe. Ich versuche mehr zu lernen.Bestellung von A dann B mit Ruby on Rails Modell
Ich habe folgende Entitäten mit Attributen
Manufacturer {name}
// Shop manufactueres
Model {manufacturer_id, name}
// Speichere Models
Tint {manufacturer_id, model_id, front, side, rear}
// Speichere Messungen
Ich habe die Folgedaten in meiner Tint
Einheit. Alphabete steht für verschiedene Herstellernamen und Modelle.
Manufacturer | Model | Front | Side | Rear |
-------------+-------+-------+------+-------
A | AD | 10 | 10 | 10 |
B | AB | 10 | 10 | 10 |
A | AA | 10 | 10 | 10 |
A | AC | 10 | 10 | 10 |
B | AA | 10 | 10 | 10 |
A | AB | 10 | 10 | 10 |
Wenn ich es in view
auszudrucken, ich möchte es basierend auf Manufacturer
Namen haben sortiert und dann Model
. Also wird das Ergebnis wie folgt sein. Der Name der Hersteller wird alphabetisch sortiert, dann Modelle.
Manufacturer | Model | Front | Side | Rear |
-------------+-------+-------+------+-------
A | AA | 10 | 10 | 10 |
A | AB | 10 | 10 | 10 |
A | AC | 10 | 10 | 10 |
A | AD | 10 | 10 | 10 |
B | AA | 10 | 10 | 10 |
B | AB | 10 | 10 | 10 |
Ich habe Setup das Modell, um sicherzustellen, Manufacturer
und Model
ein deutliches Wertepaar ist.
Meine Frage ist, da ich Referenzierung bin mit manufacturer_id
und model_id
, wie kann ich den Namen der Manufacturer
und Model
von Manufacturer
und Model
Tisch.
In meiner tints_controller.rb habe ich @tints = Tint.all.order(:manufacturer_id)
. Es wird jedoch nur auf der Grundlage der manufacturer_id
(wie in Zahlen) anstelle des Namens des Herstellers sortiert.
Ich weiß, dass ich es in SQL Weise (SELECT, FROM, WHERE)
in RoR-Modell tun kann. Ich würde jedoch gerne wissen, ist es möglich, ActiveRecord zu verwenden, um die Daten basierend auf ihrem Namen zu sortieren.
Ich bekomme völlig, was Sie sagen wollen, aber ich bin etwas verloren. Ich weiß, dass ich '@ manufacturer.name' machen kann, um den Namen des Herstellers zu erhalten. Da ich in "Tint" -Controller bin, wie kann ich den folgenden Code einbetten, indem ich "@ tints = Tint.all.order (: manufacturer_id)" ändere. Ich habe versucht, das in der letzten Stunde herauszufinden, aber ich bin immer noch verloren. –