Es ist plötzlich ...
① Stellen Sie sich einen "Kollegen vor, der enorm arbeiten kann" in Ihrer Nähe. ② Deine "Frau". Oder denken Sie an eine "ideale Frau (männlich)".
Eine Methode, die beide zusammenführt. Ich kann enorm arbeiten, aber fröhlich und weich. Das ist die diesmal eingeführte "Zupfmethode".
(... Es tut mir leid, dass ich es ernst mache.)
Dieser Beitrag
Ich werde darüber erklären. (* Dieser Artikel ist nutzlos für diejenigen, die die Zupfmethode bereits beherrschen.)
Abschließend __ __ Methode zum Abrufen des Werts einer Spalte in einem Array.
Nehmen wir als Beispiel eine Tabelle.
id | name | age |
---|---|---|
1 | ken | 21 |
2 | takuya | 22 |
3 | masato | 29 |
4 | kouta | 24 |
5 | hirokatsu | 23 |
6 | yuuhei | 28 |
7 | takumi | 25 |
8 | akihito | 26 |
Wenn Sie beispielsweise eine solche Tabelle haben, können Sie die Zupfmethode verwenden.
users_controller.rb
@users = User.pluck(:id)
#Ausgabeergebnis unten
@users = [1, 2, 3, 4, 5, 6, 7, 8]
Auf diese Weise kann durch Festlegen von __model name.pluck (Spaltenname) __ der Inhalt dieser Spalte als Array abgerufen werden.
Sie können auch ein zweites Argument angeben ...
users_controller.rb
@users = User.pluck(:id, :name) #Geben Sie den Namen als zweites Argument an
#Ausgabeergebnis unten
@users = [ [1, "ken"],[2, "takuya"],[3, "masato"],[4, "kouta"],
[5, "hirokatsu"],[6, "yuuhei"],[7, "takumi"],[8, "akihito"] ]
Es ist auch möglich, mehrere Argumente auf diese Weise zu übergeben und sie als Array abzurufen. Selbst wenn Sie das 3. und 4. Argument übergeben, erhalten Sie dasselbe wie ein Array.
Übrigens, da es sich um ein Array handelt, unterscheidet sich die Erfassungsmethode geringfügig.
users_controller.rb
@users = User.pluck(:id, :name) #Geben Sie den Namen als zweites Argument an
@users[0][1] = "ken" #Erstes Array[1,"ken"]Weil es das zweite Element von ist"ken"Erhalten
@users[3][0] = 1 #4. Array[4,"kouta"]Holen Sie sich 1, weil es das erste Element von ist
Sie können den Inhalt so erhalten.
Was können Sie also mit der Zupfmethode tun?
Wenn Sie beispielsweise herausfinden möchten, ob das Benutzermodell 24 Jahre alte Daten enthält,
users_controller.rb
User.where(age: 24).exists?
# => true
Sie können es bekommen, indem Sie die oben genannten Schritte ausführen, aber wenn Sie die Zupfmethode verwenden
users_controller.rb
User.pluck(:age).include?(24)
# => true
Sie können es mit einem Ausdruck wie diesem erhalten. __ "... Nein, welches ist in Ordnung?" __, aber für diese beiden benutze ich Zupfen. Ich werde den Grund als nächstes erklären.
Auf den ersten Blick sehen die Ergebnisse der beiden obigen Formeln gleich aus. Die durchgeführte Verarbeitung und die Anzahl der erfassten Daten sind jedoch völlig unterschiedlich.
users_controller.rb
User.where(age: 24).exists?
↓ Hier ist die Abfrage (Anweisung für SQL), die zu diesem Zeitpunkt ausgegeben wird ↓
MySQL
User Exists? (0.6ms) SELECT 1 AS one FROM `users` WHERE `users`.`age` = 24 LIMIT 1
=> true
Was passiert also, wenn Sie die Zupfmethode verwenden?
users_controller.rb
User.pluck(:age).include?(24)
↓ Klicken Sie hier für die ausgegebene Abfrage (Befehl an SQL) ↓
MySQL
(0.5ms) SELECT `users`.`age` FROM `users`
=> true
Sehen Sie, dass es offensichtlich kurz ist? Die Verarbeitungszeit unterscheidet sich ebenfalls um 0,1 Millisekunden.
Im ersten Fall untersuchen wir, "ob es einen 24-jährigen Benutzer gibt" Letzterer untersucht, "ob im Alter des Benutzers Daten für 24 Jahre vorliegen".
Mit anderen Worten, durch Zupfen __ Sie können nur die Spalten abrufen, die Sie benötigen. Dies bedeutet, dass Ihre Abfrage kürzer und schneller ist. __.
Je mehr Daten Sie haben, desto größer ist der Unterschied in der Verarbeitungsgeschwindigkeit. Für diejenigen, die sagen: "Ich habe ein Portfolio erstellt, aber die Verarbeitung ist etwas schleppend ...", warum nicht die Beschreibung der Datenerfassung überprüfen?
① Die Zupfmethode ist die __ "Methode zum Abrufen des Werts einer bestimmten Spalte in einem Array" __ (2) Durch die Verwendung von Zupfen wird in einigen Fällen die unbrauchbare Ausgabe von Abfragen unterdrückt und die Verarbeitungsgeschwindigkeit verbessert.
Ich hoffe, Sie können die Güte der Zupfmethode auch nur ein wenig verstehen ... Danke, dass du bis zum Ende zugesehen hast.
Recommended Posts