У меня @people
переменная содержит данные выглядят так же, как:
Что у меня есть
[{"id"=>1, "name"=>"Tom", "age"=>"25"},
{"id"=>2, "name"=>"Marry", "age"=>"27"},
{"id"=>3, "name"=>"Jack", "age"=>"28"}]
и я пытаюсь преобразовать данные в файл CSV, который может выглядеть как
Что я собираюсь сделать
id | name | age
1 | Tom | 25
2 | Marry| 27
3 | Jack | 28
но мой код генерирует CSV-файл с отображением всех встроенных данных. Например:
Что я получу
{"id"=>1,"name"=>"Tom","age"=>25},{"id"=>2, "name"=>"Marry",
"age"=>"27"},{"id"=>3, "name"=>"Jack", "age"=>"28"}
Что я сделал:
to_csv
действие выглядит так:
def to_csv
CSV.generate(option) do |csv|
csv << column_names
values.each do |value|
csv << value.attributes.values_at(*column_names)
end
end
end
Я добавил этот блок respond_to
к одному из своих действий:
respond_to do |format|
format.html
format.csv {
send_data @people.to_csv,
filename: "export.csv",
type: 'text/csv; charset=utf-8'
}
Я получаю данные (например, {"id"=>1,"name"=>"Tom","age"=>25 ...
) из внешнего источника, поэтому я поместил эти данные в переменную @people
для использования. Любая помощь будет принята с благодарностью.