Ruby on Rails 3 Tips

Rails 3 になってから、content_forの挙動が少し変わった。 Rails 2までの動きだと <% content_for :title do -%> トップページ <% end -%> という感じでタイトルを各ビューごとに変更するような作りの場合 レイアウトのhtml.erbでは、 <title><%= yield(:title) || 'デフォルトのトップページ' %></title> とやると、各ビューの方でconte ...

Ruby on Rails 3 Tips

Rails2.3あたり?(もうちょっと前かな?)からhelperはデフォルトで全部読み込むようになってまった。 別のコントローラのhelperも呼んでしまうので、同じメソッドが定義してあると、どれが呼ばれるかくわからなくなる。 Rails 3.0では、Application::Baseで読み込んでしまうので、 これを解除するにはアプリケーションコントローラに #app/controller/application_controller.rb clear_helpers を追加する

JasperReports

JasperReportsで複数のテンプレートを結合してPDFを出力する際に、最初に思いつくのはaddPageメソッドでページを追加してい くという方法だが、この方法だと用紙サイズ、用紙方向などが最初の用紙の設定でページが追加されるようで追加したページの設定が良くない。 そこで、少し面倒だが、各用紙の設定を維持したまま単一のPDF出力が出来るようにする 具体的には、JasperReportsのクラス で「JRPdfExporter」というのがあり、このクラスを使ってPDFを出力する /* * r ...

JasperReports

Railsをpassengerで動かしている時に、RJBでJavaのライブラリJasperReportsを呼び出そうとすると うまくいかなかった。 なので、一つの解決法としてJasperReportsの呼び出し部分をRailsとは切り離す仕組みとしてDRubyを採用する。 サンプルは別途リンクを張りますが、ここでは主要なソースのみ書き出します。 まずは、実際にPDFを作成する部分から gen/WritePdf.java: package gendosu; import java.io.File; ...

JasperReports,PC関連

JasperReportsで複数の帳票を結合してPDF出力する