/ / rails first_or_create per più record: ruby-on-rails, ruby, ruby-on-rails-4, hash

rotaie first_or_create per più record - ruby-on-rail, ruby, ruby-on-rail-4, hash

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 № 1

Può 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.