我有一個紅寶石寶石,poirot,它可以在Rails中使用小鬍子模板。我使用的模板處理程序是從ActionView :: Template :: Handler擴展而來的,但是這似乎在Rails 3.1中不推薦使用。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的一個實例。但我不知道如何獲得視圖上下文,其中應包括當地人等
有人可以指出我在正確的方向嗎?