2015-11-16 2 views
0

Я использую рубиновый камень: prawn и расширение prawn-table, чтобы обеспечить креветку функциональность создания таблиц.Таблица креветок: Итерация через активное связывание записей Объект для заполнения

Основы создания таблицы с креветкой displayed here прямо вперед, когда у вас есть статические данные:

# This works. Easy because it is static data 
def prepare_for_print 
    pdf = Prawn::Document.new 
    pdf.font_size 11 
    pdf.font "Times-Roman" 

    pdf.table([ ["short", "short", "loooooooooooooooooooong "*30], 
       ["short", "loooooooooooooooooooong "*15, "short"], 
       ["loooooooooooooooooooong "*10, "short", "short"] ]) 
    return pdf 
end 

Великого. Это было неплохо. Но теперь я хочу перебирать активного объекта запись отношения, но моя попытка просто не работает:

def prepare_for_print 
    pdf = Prawn::Document.new 
    pdf.font_size 11 
    pdf.font "Times-Roman" 


    calls_by_disability.each do |disability| 
    pdf.text "#{disability}", style: :bold, color: "001133" 
    pdf.table([ ["Call ID", "Date", "County", "Service Category", "Service", "Notes"], 
       disability.calls.each do |call| 
       ["hello", "world", "foo", "bar", "bazz", "adsfsa"], 
       end 
       ]) 
    end 
    return pdf 
end 

Проблема заключается в переборе связанных вызовов:

disability.calls.each do |call| 
    ["hello", "world", "foo", "bar", "bazz", "adsfsa"], 
end 

Любые советы приветствуются. Благодаря!

ответ

2
calls_by_disability.each do |disability| 
    pdf.text "#{disability}", style: :bold, color: "001133" 

    header = ["Call ID", "Date", "County", "Service Category", "Service", "Notes"] 
    table_data = [] 
    table_data << header 
    disability.calls.map do |call| 
     table_data << [call.id, call.date, call.country, call.service_category, call_service, call.notes] 
    end 
    pdf.table(table_data) 
    end 
+0

С вашим предлагаемым ответом я получаю эту ошибку: «данные должны быть двухмерным массивом объектов с ячейками» – Neil

+0

как насчет редактирования? Я не могу проверить это, я только пытаюсь помочь, потому что я провел несколько часов с креветками сегодня на работе, и это боль в ** :) См. Редактирование и попытайтесь следовать за ошибкой, они довольно описательны , –

+0

Я думаю, что я действительно очень благодарен вашей помощи. Проблема в том, что 'table_data' имеет дополнительную' [] 'упаковку данных по какой-то причине для каждого вызова. Я попытался взять «карту» и заменить ее на «.each», но это не сделало этого. – Neil

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