预构建片段缓存(内部方法)

Pre-build fragment cache (internal approach)

我想预先构建一个需要几秒钟才能呈现的部分。我见过使用代理通过 http 预加载缓存的函数,但我想要一个 "internal" 解决方案。

这是我的函数,每当 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 中必须包含助手,但我找不到这样做的方法。提前感谢您的帮助!

您可以从源代码中挑选一些想法:) https://github.com/rails/rails/issues/18409