[RUBY] Comment mettre à jour avec activerecord-import

Je ne l'ai pas écrit subtilement, alors je me suis fait une note

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

#Ici sur_duplicate_key_Transmettez le nom de la colonne que vous souhaitez mettre à jour pour mettre à jour
User.import update_users, on_duplicate_key_update: [:name, :email]

Je comprends que la valeur par défaut de Gem est de spécifier le nom de la colonne avec l'option ʻon_duplicate_key_update` pour INSERT, et la colonne spécifiée sera mise à jour (Upsert) lorsque la clé est couverte.

Donc, si vous mettez à jour uniquement l'utilisateur d'origine et que vous le transmettez, il ne sera mis à jour que.

À propos, il semble que la méthode de spécification de cette option diffère selon la base de données. 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

Comment mettre à jour avec activerecord-import
Comment mettre à jour les modèles associés avec accepte_nested_attributes_for
Comment entourer n'importe quel caractère avec "~"
Comment utiliser mssql-tools avec Alpine
Mettre à jour MySQL de 5.7 à 8.0 avec Docker
Comment démarrer Camunda avec Docker
Comment recadrer une image avec libGDX
Comment partager des fichiers avec Docker Toolbox
[Java] Résumez comment comparer avec la méthode equals
[Android] Comment gérer les thèmes sombres
Comment utiliser BootStrap avec Play Framework
Comment changer d'images miniatures avec JavaScript
[Note] Comment démarrer avec Rspec
Comment faire un contrôle basé sur l'API avec cancancan
Comment réaliser le téléchargement de fichiers avec Feign
Comment définir JAVA_HOME avec l'appassembler-maven-plugin de Maven
Comment implémenter TextInputLayout avec la fonction de validation
Comment gérer les erreurs de connexion avec l'appareil
Comment supprimer des données avec une clé externe
Comment tester l'étendue privée avec JUnit
Comment surveiller nginx avec docker-compose avec datadog
Comment gérer les actifs de précompilation a échoué.
Comment réaliser le téléchargement de fichiers avec Feign
Comment exécuter Blazor (C #) avec Docker
Comment créer un environnement Rails 6 avec Docker
Comment télécharger Oracle JDK 8 rpm avec curl
Comment se moquer de chaque cas avec Mockito 1x
Comment se moquer de chaque cas avec PowerMock + Mockito1x
Comment utiliser MyBatis2 (iBatis) avec Spring Boot 1.4 (Spring 4)
Comment enregistrer dans plusieurs tables avec une seule entrée
Comment utiliser h2db intégré avec Spring Boot
Comment utiliser le framework Java avec AWS Lambda! ??
Comment créer plusieurs menus déroulants avec ActiveHash
Comment mettre à jour un fichier prédéfini dans un conteneur Docker
Comment utiliser l'API Java avec des expressions lambda
Comment démarrer avec Eclipse Micro Profile
Comment donner votre image à quelqu'un avec Docker
Comment tout insérer en même temps avec MyBatis
Comment écrire du code de test avec la certification de base
Comment créer une API avec GraphQL et Rails
Comment utiliser le protocole NFS version 2 avec Ubuntu 18.04
Comment sortir un fichier de ressources avec spring-boot
Comment créer des variables membres avec le modèle JPA
Comment vérifier les éléments variables avec RequestBodyMatching de WireMock
[Rails] Comment créer un environnement avec Docker
Comment éviter les exceptions avec la méthode Equals de Java
Comment rediriger après la connexion de l'utilisateur avec Spring-security
Comment appeler AmazonSQSAsync
Comment utiliser Map
Comment écrire des rails