2012-04-18 3 views
1

У меня есть CSV-файл с около 30 столбцов, которые я хотел бы вывести, и хотели бы они, чтобы появиться в моем .csv.erb на разных строках, например:Как игнорировать разрывы строк в файле csv с ruby, но сохранить хороший исходный файл?

<%= quantity.line_number %>, 
<%= quantity.created_at.strftime("%Y-%m-%d %H:%M:%S") %>, 
<%= quantity.partner_entity_no %>, 
<%= quantity.partner_name %>, 

Однако когда я исполню это, то мой .csv-файл имеет разрывы строк после каждого ',' я хотел бы 1) сохранить каждый столбец в отдельной строке в источнике и 2) иметь нестрочные разрывы в выходном файле .csv. Как я могу это сделать?

ответ

2

Используйте STDLIB CSV class, чтобы получить CSV цитирование и избежать семантику права. Или, что более удобно, используйте его вспомогательный метод Array#to_csv.

<% require 'csv' %> 
... 
<%= [ 
     quantity.line_number, 
     quantity.created_at.strftime("%Y-%m-%d %H:%M:%S"), 
     quantity.partner_entity_no, 
     quantity.partner_name, 
    ].to_csv %> 
+0

Как правило, у вас есть требование «csv» в erb html или в контроллере в рельсах? Где лучше всего было бы для этого? – Kamilski81

+0

, если вы потребовали его в инициализаторе или контроллере, он должен быть доступен в вашем представлении. Я просто положил его туда, чтобы было ясно, что это было необходимо. – dbenhur

2
<%= [quantity.line_number, 
    quantity.created_at.strftime("%Y-%m-%d %H:%M:%S"), 
    quantity.partner_entity_no, 
    quantity.partner_name].join(',') %> 
+1

хорошее предложение, но, вероятно, следует беспокоиться о требованиях к цитированию полей со встроенными разделителями. – dbenhur

 Смежные вопросы

  • Нет связанных вопросов^_^