QA@IT

Ruby on Rails Excel出力について

1828 PV

環境は以下のとおりです。

Mac OSX 10.8
IDE Eclipse
Ruby1.9.3
Rails 3.2

Excelファイルのダウンロードさせたく、以下のようなエラーが発生してしまいました。

※ログ

ActionDispatch::Cookies::CookieOverflow (ActionDispatch::Cookies::CookieOverflow):
actionpack (3.2.9) lib/action_dispatch/middleware/cookies.rb:305:in `[]='
actionpack (3.2.9) lib/action_dispatch/middleware/session/cookie_store.rb:67:in `set_cookie'

実装は以下のような実装をしています。

  def sendExcel(book)
    tmpfile = Tempfile.new ["excel_tmp", ".xls"]

    fileOut = JavaIOMod::FileOutputStream.new(tmpfile.path)
    book.write(fileOut);
    fileOut.close()

    tmpfile.open
    filename = "SI-Manage-" + Time.now.strftime('%y%m%d%H%M%S') + ".xls"

    send_data(
      tmpfile.read,
      :disposition=>'attachment',
      :type=>"application/excel",
      :filename => filename
    )

    tmpfile.close(true)
  end

※bookオブジェクトはRJB経由でJava版のPOIで生成されたオブジェクトです。
エラーとなるタイミングは、sendExcelの処理が完了した後です。

CookieOverflowがなぜ発生するのかもわからず、実装方法がよくないのでしょうか。
send_dataへのオプションの設定がよくないのか、、、、全くわからず2週間が経ちました。
どなたかご教授下さる方いませんか?

  • Sessionは使っていますか?あとマルチポストは避けましょう。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。