Ich habe ActiveRecord verwendet, um einen Hash mit key => value zu erstellen.
@users = Hash.send :[], *ActiveRecord::Base.connection.execute('SELECT `id`, `name` FROM `users`').map {|x| x}.flatten
@users[1]
# => "Benutzer 1"
Da Hash [* Array] verwendet wird, tritt ein Stapelüberlauf auf, wenn die Anzahl der durch Ausführen abgerufenen Datensätze eine bestimmte Stufe überschreitet.
Es gibt ein Problem sowohl bei der Verwendung von ActiveRecord als auch bei der Erstellung von Hash.
@users = User. User.pluck(:id, :name).to_h
@users[1]
# => "Benutzer 1"
Holen Sie sich die erforderlichen Spalten mit .pluck
und konvertieren Sie mit .to_h
in Hash
Recommended Posts