J'utilisais ActiveRecord pour créer un Hash avec key => value.
@users = Hash.send :[], *ActiveRecord::Base.connection.execute('SELECT `id`, `name` FROM `users`').map {|x| x}.flatten
@users[1]
# => "Utilisateur 1"
Puisque Hash [* Array] est utilisé, un débordement de pile se produira si le nombre d'enregistrements récupérés par exécution dépasse un certain niveau.
Il y a un problème avec l'utilisation d'ActiveRecord et la façon de faire du hachage.
@users = User. User.pluck(:id, :name).to_h
@users[1]
# => "Utilisateur 1"
Obtenez les colonnes requises avec .pluck
et convertissez-les en Hash avec .to_h
Recommended Posts