キャッシュとは別の方法で静的ファイルを生成する

こんな簡単な方法があったとは。

やりたいこと

app/view/papers/show.html.erb の内容を public/static/papers/hogehoge.html に保存したい。

render_to_string を使う

王道は cache_pages を使うみたいだけど、より素朴に render_to_string でできるみたい。(参考:ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Layouts and Rendering in Rails:render の使用(Using render)

def show
 File.open("#{Rails.root}/public/static/#{params[:controller]}/hogehoge.html", "w") do |file |
   file.puts(render_to_string)
 end
end

これで上記のことが可能。