método no definido `fragment_for ‘para nil: NilClass en el procesamiento parcial con caché

Tengo este fragmento de código en forma parcial en algún código para Rails 2.3.14:

 ....  

Funciona bien al representarlo en una vista, pero obtengo:

 undefined method `fragment_for' for nil:NilClass 

Cuando trato de hacer esto en un modelo:

  ActionView::Base.new("app/views").render(:partial => "home/temp"} 

Puedo ver el problema que ocurre en actionpack-2.3.14 / lib / action_view / helpers / cache_helper.rb: 35

  def cache(name = {}, options = nil, &block) @controller.fragment_for(output_buffer, name, options, &block) end 

No estoy seguro de qué es exactamente lo que espera encontrar en @controller.

En resumen: no renderice parciales desde modelos, deben contener solo lógica de negocios. Se produce un error porque la memoria caché invoca el objeto del controlador que no se ha inicializado, ya que aquí se está omitiendo la lógica de representación de la vista.

ACTUALIZAR:

La única forma en que lo veo es obtener la instancia del controlador y pasarla como parámetro. Cómo obtener la instancia del controlador dentro del modelo depende de usted. Creo que esta pregunta podría ser útil.

 ActionView::Base.new("app/views", {}, @your_controller_instance).render(:partial => "home/temp") 

Es posible que pueda agregar:

 include ActionController::Caching 

a tu clase