Mi chiedevo, è possibile trovare o creare più oggetti contemporaneamente Ruby on Rails
?
Fai qualcosa come il seguente (so che non è un codice valido per RoR ma ti stai solo chiedendo è possibile fare qualcosa del genere?)
class User
end
hash = []
hash << { name: "Bob"}
hash << { name: "Jim"}
User.where(hash).first_or_create!
Il significato di questo è minimise number of queries
dovevo fare qualcosa del genere
hash.map {|u| User.where(u).first_or_create!}
risposte:
2 per risposta № 1Può essere che tu possa provare questo:
Aggiungi gemma di importazione al tuo gemfile:
gem "activerecord-import", "~> 0.10.0"
Quindi nel tuo controller:
create_user = []
create_user << {name: "Bob"}
create_user << {name: "jim"}
User.import create_user
Ciò verrà inserito solo con una singola query nel database.
-1 per risposta № 2
Questo è possibile in Ruby. Si prega di controllare il seguente codice,
hash = []
hash << { name: "Bob" }
hash << { name: "Jim" }
User.create(hash)
Verranno creati due utenti in base ai dati aggiunti nell'hash. Inoltre, la chiave del dizionario dovrebbe essere basata sui nomi delle colonne.