Я делаю экспорт CSV (в рубине, из рельсов) с переменным количеством записей. Количество полей, экспортируемых в каждой записи, зависит от количества авторов в каждой книге. Это не идеально, учитывая, что пользователи будут смотреть на этот CSV в чем-то вроде Excel, и ожидают, что данные будут последовательно представлены в столбцах. Как я могу установить количество столбцов равным общему количеству повторений блока, учитывая, что структура компоновщика CSV выглядит примерно так:
# header-row for the data
csv << ["column heading 1", "column heading 2", "column heading 3" #etc]
Book.all do |book|
row_data = book.id
row_data << book.some_other_field # etc
book.authors.each do |author|
row_data << author.first.name
#etc