[RUBY] So aktualisieren Sie mit activerecord-import

Ich habe es nicht subtil geschrieben, also habe ich mir eine Notiz gemacht

update_users = []
users.each do |user|
  user.name = "John"
  user.email = "[email protected]"
  update_users << user
end

#Hier weiter_duplicate_key_Übergeben Sie den Spaltennamen, den Sie aktualisieren möchten, an die Aktualisierung
User.import update_users, on_duplicate_key_update: [:name, :email]

Ich verstehe, dass der Standard von Gem darin besteht, den Spaltennamen mit der Option "on_duplicate_key_update" für INSERT anzugeben, und die angegebene Spalte wird aktualisiert (Upsert), wenn der Schlüssel abgedeckt ist.

Wenn Sie also nur den ursprünglichen Benutzer aktualisieren und übergeben, wird dieser nur aktualisiert.

Übrigens scheint die Methode zur Angabe dieser Option je nach Datenbank unterschiedlich zu sein. https://github.com/zdennis/activerecord-import/#duplicate-key-update

# MySQL version
Book.import [book], on_duplicate_key_update: [:title]

# PostgreSQL version
Book.import [book], on_duplicate_key_update: {conflict_target: [:id], columns: [:title]}

Recommended Posts

So aktualisieren Sie mit activerecord-import
So aktualisieren Sie verwandte Modelle mit accept_nested_attributes_for
Wie man ein Zeichen mit "~" einschließt
Wie man mssql-tools mit alpine benutzt
Aktualisieren Sie MySQL mit Docker von 5.7 auf 8.0
So starten Sie Camunda mit Docker
So beschneiden Sie ein Bild in libGDX
So teilen Sie Dateien mit Docker Toolbox
[Java] Fassen Sie zusammen, wie Sie mit der Methode equals vergleichen können
[Android] Wie man mit dunklen Themen umgeht
Verwendung von BootStrap mit Play Framework
So wechseln Sie Miniaturbilder mit JavaScript
[Hinweis] Erste Schritte mit Rspec
API-basierte Steuerung mit cancancan
So erreichen Sie den Dateidownload mit Feign
So setzen Sie JAVA_HOME mit dem Appassembler-Maven-Plugin von Maven
So implementieren Sie TextInputLayout mit Validierungsfunktion
So behandeln Sie Anmeldefehler mit devise
So löschen Sie Daten mit einem externen Schlüssel
So testen Sie den privaten Bereich mit JUnit
So überwachen Sie Nginx mit Docker-Compose mit Datadog
Der Umgang mit dem Vorkompilieren von Assets ist fehlgeschlagen.
So erreichen Sie das Hochladen von Dateien mit Feign
So führen Sie Blazor (C #) mit Docker aus
So erstellen Sie eine Rails 6-Umgebung mit Docker
So laden Sie Oracle JDK 8 U / min mit Curl herunter
Wie man jeden Fall mit Mockito 1x verspottet
Wie man jeden Fall mit PowerMock + Mockito1x verspottet
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
So speichern Sie mit einer Eingabe in mehreren Tabellen
Verwendung des eingebauten h2db mit Federstiefel
Verwendung des Java-Frameworks mit AWS Lambda! ??
So erstellen Sie mit ActiveHash mehrere Pulldown-Menüs
So aktualisieren Sie eine vorgefertigte Datei in einem Docker-Container
Verwendung der Java-API mit Lambda-Ausdrücken
Erste Schritte mit Eclipse Micro Profile
So geben Sie jemandem Ihr Image mit Docker
So fügen Sie mit MyBatis alles auf einmal ein
So schreiben Sie Testcode mit Basic-Zertifizierung
So erstellen Sie eine API mit GraphQL und Rails
Verwendung des NFS-Protokolls Version 2 mit Ubuntu 18.04
So löschen Sie eine Ressourcendatei mit Spring-Boot
So erstellen Sie Elementvariablen mit dem JPA-Modell
So überprüfen Sie variable Elemente mit RequestBodyMatching von WireMock
[Rails] So erstellen Sie eine Umgebung mit Docker
So vermeiden Sie Ausnahmen mit der Java-Methode equals
So leiten Sie nach der Benutzeranmeldung mit Spring-security um
So rufen Sie AmazonSQSAsync auf
Verwendung von Map
Wie schreibe ich Rails