API GET リクエストから次のレスポンスを受け取りました。
{"data" => [
{"firstName"=>"Test",
"lastName"=>"LastName",
"dateOfBirth"=>"2003-01-17",
"details"=> [
{"date"=>"2013-10-01T00:00:00",
"type"=>1,
"checkInTime"=>"07:00:00",
"checkOutTime"=>"08:00:00"},
{"date"=>"2013-10-01T00:00:00",
"type"=>2,
"checkInTime"=>"15:30:00",
"checkOutTime"=>"16:00:00"},
{"date"=>"2013-10-02T00:00:00",
"type"=>1,
"checkInTime"=>"07:00:00",
"checkOutTime"=>"08:00:00"},
{"date"=>"2013-10-02T00:00:00",
"type"=>2,
"checkInTime"=>"15:30:00",
"checkOutTime"=>"16:00:00"},
{"date"=>"2013-10-03T00:00:00",
"type"=>1,
"checkInTime"=>"07:00:00",
"checkOutTime"=>"08:00:00"},
{"date"=>"2013-10-04T00:00:00",
"type"=>1,
"checkInTime"=>"07:00:00",
"checkOutTime"=>"08:00:00"},
{"date"=>"2013-10-07T00:00:00",
"type"=>1,
"checkInTime"=>"07:00:00",
"checkOutTime"=>"08:00:00"},
{"date"=>"2013-10-07T00:00:00",
"type"=>2,
"checkInTime"=>"15:30:00",
"checkOutTime"=>"16:40:00"}]}]}
100~ の同様の応答を受信します。この情報をテーブル内の行に抽出する必要があります。
私の現在の方法は、各キー/値を個別の配列にダンプし、配列を列として転置して、基本的に行を作成することです。それが正しいかどうかに関係なく、上記のハッシュを使用して次のようなものを取得するにはどうすればよいですか。
First Name | Date Of Birth | Date | Check In Time| Date | Check In Time| ...
Test | 2003-01-07 | 2013-10-01 | 07:00 | 2013-10-01 | 15:30 | ...
補足として、何らかのループを実行し、同様のデータを含む約 100 行を作成します。
編集:
詳細情報を提供するために、私は Prawn gem を使用して PDF 内にテーブルを生成しています。コードは次のようになります。
font("Times-Roman", :size => 8) do
bounding_box([bounds.left, bounds.top - 165], :width => bounds.width, :height => bounds.height - 200) do
table([
[{content: "Child's Name",borders: [:left, :top]},{:content => "Sunday", :align => :center, :colspan => 2},{:content => "Monday", :align => :center, :colspan => 2},{:content => "Tuesday", :align => :center, :colspan => 2},{:content => "Wednesday", :align => :center, :colspan => 2},{:content => "Thursday", :align => :center, :colspan => 2},{:content => "Friday", :align => :center, :colspan => 2},{:content => "Saturday", :align => :center, :colspan => 2},{content: 'Signature of Parent or Designated Person to Verify Accuracy of Attendance for the week', rowspan: 3}],
[{content: '', :height => 20,borders: [:left]},'Time In', 'Time Out', 'Time In', 'Time Out', 'Time In', 'Time Out', 'Time In', 'Time Out', 'Time In', 'Time Out', 'Time In', 'Time Out', 'Time In', 'Time Out'],
[{content: '(as it appears on PBF)', :height => 26,borders: [:left, :bottom], align: :center, inline_format: true }, 'Initials', 'Initials', 'Initials', 'Initials', 'Initials', 'Initials', 'Initials', 'Initials', 'Initials', 'Initials', 'Initials', 'Initials', 'Initials', 'Initials']
],
#Set column widths
:column_widths => {0 => 60,1 => 42,2 => 42,3 => 42,4 => 42,5 => 42,6 => 42,7 => 42,8 => 42,9 => 42,10 => 42,11 => 42,12 => 42,13 => 42,14 => 42}) do
#Color every other column grey --------------
column(1).style :background_color => 'C0C0C0'
column(2).style :background_color => 'C0C0C0'
column(5).style :background_color => 'C0C0C0'
column(6).style :background_color => 'C0C0C0'
column(9).style :background_color => 'C0C0C0'
column(10).style :background_color => 'C0C0C0'
column(13).style :background_color => 'C0C0C0'
column(14).style :background_color => 'C0C0C0'
end #End Column Style
end #End Boundind Box
end #End Font
テーブルは正しく生成されますが、ヘッダーしか含まれていません。GET リクエストから返される応答は、この表に収まるはずです。各data
要素はテーブル内の個別の行であるdetails
必要があり、各オブジェクトはその行の個別の列である必要があります。