у меня есть действие, называемое отдельным пользователем pdf на страницу, оно связывается с двумя моделями, моделью пользователя, которая извлекает информацию из базы данных, но конкретную информацию только для всех пользователей, затем она берет информацию и отправляет ее в отчет модели который затем, когда я проверяю атрибуты каждого пользователя, отображается так, что я не вызвал его у пользователя модели, он берет каждую пару и размещает ее в другом порядке, поэтому, когда я записываю информацию в таблицу на pdf он отображает его плохо, как будто инициалы могут быть последней записью в моей таблице, а сотовый телефон может быть первым ... и мне нужно создать новую страницу для информации о каждом пользователе.
мой код отчета выглядит так:
def self.generate_individual_pdf (люди, жители, пользователь, имущество = ноль, заголовок = ноль)
pdf = PDF::Writer.new
title = !title ? "Report" :title
pdf.select_font "Times-Roman"
pdf.text "<em>Compiled By: #{user.presentation_name}</em> <em>Estate: #{estate.name}</em> <em>Created On: #{Time.now.strftime('%d/%m/%Y %H:%M')}</em>", :justification => :center
x = 0
25.times do
pdf.text ""+" "
x+=1
puts x
end
pdf.text "<em>User Report For: #{estate.name}</em> ", :font_size => 18, :bold => true, :justification => :center
if estate.logo
pdf.image "#{RAILS_ROOT}/public"+estate.logo.public_filename,:width => 100, :height => 100, :resize => 1.1, :justification => :center
end
y = 0
#loop people to create table for every person
people.each do |p|
pdf.start_new_page
pdf.text" "+p.Title.to_s+" "+p.Firstname.to_s+" "+p.Lastname.to_s, :font_size => 12, :justification => :center
pdf.text ""+" "
pdf.text ""+" "
pdf.text "Please verify if your details below are correct, and rectify them in the third column of the table.", :font_size => 8
pdf.text ""+" "
table = PDF::SimpleTable.new
table.column_order.push(*["head1","head2","head3"])
headings = ["head1","head2","head3"]
headings.each do |h|
table.columns[h] = PDF::SimpleTable::Column.new(h)
table.columns[h].heading = h.humanize
end
#display tables
table.show_headings = false
table.orientation = :right
table.position = :left
data = []
p.attributes.each_pair do |h|
data << { "head1" => h[0], "head2" => h[1], "head3" => " "}
end
table.data.replace data
table.render_on(pdf)
i = 0
28.times do
pdf.text ""+" "
i+=1
puts i
end
pdf.text "Kind Regards"+ " "+p.Title.to_s+" "+p.Firstname.to_s+" "+p.Lastname.to_s, :font_size => 11
pdf.text ""+" "
pdf.text "Signature "+"......................................."
end
затем он выдает выходные данные, когда он проходит через p.attribute.each_pair do | h |
data << {"head1" => h [0], "head2" => h [1], "head3" => " это должно быть ноль "}
конец
пожалуйста, ребята, я пытался использовать все эти виды сортировки, но я просто не могу получить правильный ответ .. тот, кто может помочь, пожалуйста, не стесняйтесь .. заранее спасибо.