Я пытаюсь добавить строку в CSV :: Table в Ruby 1.9 (вопросы также относятся к FasterCSV в Ruby 1.8).Если порядок столбцов в новой строке отличается от порядка в таблице, элементы добавляются в неправильные столбцы, даже если заголовки указаны правильно.Выглядит так, как будто заголовки в новой строке игнорируются.
require 'csv'
first_row = CSV::Row.new(["h1","h2","h3"],[1,2,3])
second_row = CSV::Row.new(["h2","h1","h3"],[2,1,3]) # note the change in order
table = CSV::Table.new([first_row])
table << second_row
puts table.to_s
Вывод:
h1,h2,h3
1,2,3
2,1,3
Но так как я указываю заголовки явно, я ожидаю, что CSV будет соответствовать заголовкамновой строки для таблицы и выведите это:
h1,h2,h3
1,2,3
1,2,3
Есть объяснения?Могу ли я что-то с этим сделать, кроме переупорядочивания столбцов самостоятельно перед созданием новой строки?