Креветка: Как перебрать таблицу внутри итерации в заголовке? - PullRequest
0 голосов
/ 16 апреля 2019

Я передаю 3 идентификатора @course на курсы courses.pdf.Затем Prawn генерирует PDF из 3 страниц - одна страница pr курса.

Проблема: в настоящее время она печатает всех @ участников из всех 3 курсов на всех 3 страницах.

Она должна печатать только @участники для текущего курса в таблице.

Я потратил несколько часов, пробуя разные методы, спрашивал в группах Facebook и искал решения Stackoverflow + Google.

class CoursesToPrintPdf < Prawn::Document

    def initialize(courses, participations)
        @courses = courses
        @participations = participations
        header
    end

    def header
        @courses.order('day ASC').each do |course|

            text_box("#{course.course_day_pdf}",
            :align => :right)
            text "#{course.round.round_name_simple}"

            table deltakere_rows do
                self.header = true
            end
        end
    end

    def deltakere_rows
        [["ID", "Name"]] +
        @participations.map do |p|
            [p.participant.id, p.participant.full_name]
        end
    end

end

1 Ответ

0 голосов
/ 16 апреля 2019

Содержит ли участие в курсе ссылку на курс?Если это так, это может быть что-то вроде этого

def deltakere_rows(course)
  [["ID", "Name"]] +
    @participations.select do |p|
      p.course_id == course.id
    end.map do |p|
      [p.participant.id, p.participant.full_name]
    end
end

И передать курс на deltakere_rows

table deltakere_rows(course) do
  self.header = true
end

Это может быть идея с информацией, которую мы имеем

...