エクセルファイル(.xlsx)を出力する機能をrubyXLを利用して作成したが、実行するとActionController::UnknownFormatが発生が発生する。
環境
rubyのバージョン
ruby 2.7.2p137
railsのバージョン
Rails 6.0.3.4
rubyXLのバージョン
rubyXL (3.4.25)
原因
原因はroutes.rbの設定でformatを指定していないことになる。
routes.rb
get 'excel/generate', to: 'excel#generate', as: 'generate_excel'
xlsxのエクセルファイルを出力する場合は、
get 'excel/generate', to: 'excel#generate', as: 'generate_excel', defaults: { format: :xlsx }
のように、
defaults: { format: :xlsx }
の箇所を追記するとエラーが解消される。
拡張子は出力したいファイル毎に変更してください。
初歩的なことかもしれませんが、自分の備忘録用と初学者の方々の参考になればと思います。