Tengo una gema de rubí, poirot, que permite el uso de plantillas de bigote en Rails. El manejador de plantillas que tengo se extendía desde ActionView :: Template :: Handler, sin embargo, esto parece estar en desuso en Rails 3.1.Controladores de plantilla Rails 3.1
He vuelto a factorizar el controlador para cumplir con las advertencias de desactivación. Al hacer esto, ahora no puedo pasar los locales, o el contexto de la vista, a la plantilla. Parece que no puedo encontrar la manera de hacer que esto funcione con Rails 3.1.
module Poirot
class Handler
attr_reader :template
def initialize(template)
@template = template
end
def self.call(template, *args)
self.new(template).call
end
def call
view_path = "#{template.virtual_path}_view"
abs_view_path = Rails.root.join('app/views', view_path)
view_class = begin
view_path.classify.constantize
rescue NameError => e
Poirot::View
end
"#{view_class}.new(self, '#{template.source.gsub(/'/, "\\\\'")}').render.html_safe"
end
end
end
En mi código de seguridad para el controlador que van pasando la plantilla, que es una instancia de ActionView :: Plantilla. Pero no estoy seguro de cómo obtener el contexto de vista, que debe incluir los locales, etc.
¿Alguien puede indicarme la dirección correcta?