目次
この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
Ruby on RailsにてデータをPDF出力できるThinReportsを使用する際のTipsを記載する。
■ プログラム的に問題なくデータ転送しているはずなのに出力されない場合に確認すべき点
項目が非表示になっている可能性があるので、確認する。
(PROPERTY => 基本 => 表示 にチェックが入っているか確認)
■ レイアウトファイル上にある項目とプログラムの転送項目が一致しない場合の挙動
レイアウト:有、PG:無
レイアウトファイル上にありプログラムで転送していない項目がある場合
=> エラーにならず、項目が配置されている場所には何も表示されない。
レイアウト:無、PG:有
レイアウトファイル上になくプログラムで転送している項目がある場合
=> エラーが発生する。
■ 値がnilとなる可能性のあるキーを含むハッシュを指定する場合の注意
前提
- レイアウトファイルに「tax」という項目が配置されている。
- priceの基本書式(PROPERTY => 簡易書式 => 基本書式)に「{value}円」と設定されている。
- 「products」(商品)テーブルに「tax」カラムがあり、NULLを許可している(NULLの可能性がある)。
product = Product.find(id)
# product.taxがnilの可能性がある
report.values { price: product.tax }
taxが100の場合:「100円」と表示される。
taxがNULLの場合:「円」と表示される。
対処方法
ハッシュにcompactメソッドを介してから引数に指定する。
report.values { price: product.tax }.compact
taxが100の場合:「100円」と表示される。
taxがNULLの場合:何も表示されない。