大虾:如何从一个table开始迭代到header中的一个迭代中?

Prawn: How to iterate from a table inside an iteration in the header?

我将 3 个@course ID 传递给 courses.pdf。 然后 Prawn 生成一个 3 页的 PDF - 一个课程 pr 页。

问题:目前它在所有 3 个页面中打印所有 3 个课程的所有@participants。

它应该只在 table.

中打印当前课程的@participants

我花了几个小时尝试不同的方法,在 Facebook 群组中询问并搜索 Whosebug + 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

参与是否包含课程参考?如果是这样,它可能是这样的

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

这可能是我们掌握的信息的想法