Экспорт некоторых данных из mysql в файл csv с помощью FasterCSV. Я бы хотел, чтобы столбцы в выводимом CSV были в том же порядке, что и оператор select в моем запросе.
Пример:
rows = Data.find(
:all,
:select=>'name, age, height, weight'
)
headers = rows[0].attributes.keys
FasterCSV.generate do |csv|
csv << headers
rows.each do |r|
csv << r.attributes.values
end
end
Выход CSV:
height,weight,name,age
74,212,bob,23
70,201,fred,24
.
.
.
Я хочу, чтобы столбцы CSV были в том же порядке, что и мой оператор select. Очевидно, что метод атрибутов не будет работать. Любые идеи о том, как обеспечить, чтобы столбцы в моем CSV-файле были в том же порядке, что и оператор select? Получил много данных и производительность это проблема. Оператор выбора не является статичным. Я понимаю, что могу перебирать имена столбцов внутри цикла rows.each, но это выглядит немного грязно.