私も同じ問題を抱えていました。サーバーの応答を最適化するためにいくつかのhtmlスニペットを生成する必要がありました。このスニペットに(グラフを描画するための)多くの計算があり、ユーザーがリクエストを行うたびに、すべての処理が不必要に行われていました。
ビューをいくつかのhamlパーシャルに分割したら、これを再利用してhtmlファイルを生成したいと思いました。
私の最初のアプローチはHamlエンジンを試してみましたが、パーシャルが他のパーシャルとアプリケーションヘルパーの一部の機能をレンダリングすると、機能しませんでした。最終的に、htmlファイル(to_html)を作成したいモデルで関数を作成することで合格したソリューションを見つけました。これが次のとおりです。
def to_html
ActionView::Base.send :include, ActionView::Helpers::ApplicationHelper
File.open(File.join(Rails.root, "public", 'test.html'), "w") do |file|
file.print ActionView::Base.new(Rails.configuration.paths["app/views"].first).render(
:partial => 'partial_folder/partial',
:format => :html,
:locals => { :model => self}
)
end
end
このようにして、すでに実行されたパーシャルを使用して、htmlファイルを印刷することができました。これは私にとってはうまくいきました、多分それはあなたにも役立つかもしれません。