У меня есть ruby gem, poirot, который позволяет использовать шаблоны усов в Rails. Обработчик шаблонов, который у меня есть, расширялся от ActionView::Template::Handler, однако в Rails 3.1 это кажется устаревшим.
Я реорганизовал обработчик, чтобы он соответствовал предупреждениям об устаревании. При этом я теперь не могу передать локальные жители или контекст представления шаблону. Я не могу понять, как заставить это работать с 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
В приведенном выше коде для обработчика я получаю шаблон, который является экземпляром ActionView::Template. Но я не уверен, как получить контекст представления, который должен включать местных жителей и т.д.
Может ли кто-нибудь указать мне в правильном направлении?