У меня есть рубиновый камень, 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. Но я не уверен, как получить контекст представления, который должен включать местных жителей и т. Д.
Может ли кто-нибудь указать мне правильное направление?