5
レンダリングに数秒かかる部分をあらかじめビルドしたいと考えています。私は、HTTP経由でキャッシュをプリロードするためにプロキシを使用する関数を見てきましたが、私は "内部"のソリューションを持っていたいと思います。プリビルドフラグメントキャッシュ(内部アプローチ)
これはmyobject
が更新されるたびに呼び出され、私の関数で、次のとおりです。
def pre_build_partial myobject
the_controller = ActionController::Base.new
the_controller.instance_variable_set '@myobject', myobject
view_renderer = ActionView::Renderer.new the_controller.lookup_context
view_renderer.render the_controller.view_context, { partial: 'mypartial', layout: false }
end
それは基本的なヘルパーを使用するパーシャルため正常に動作しますが、私のカスタムヘルパーはエラーをスロー:
undefined method `my_custom_helper_function' for #<#<Class:...>
私は助手がthe_controller
に含まれなければならないと思うが、私はそうする方法を見つけることができない。事前に助けてくれてありがとう!
はあなたが私を見ることができますが、上のそのコードを入れたファイルからいくつかのアイデアを選ぶだろうか? –
すでにすべてがセットアップされているので、おそらく 'ApplicationController.new'にしたいでしょうか? – phoet
Phoetの提案はやや優雅です。最も軽い解決策ではありません(あなたが必要とするヘルパーだけを含むのが理想です)が、それがうまくいくならあなたは正しい方向に動いています。アップデートをお願いします。 – Ecnalyr