看来Rails模板处理程序没有太多文档。有包括的处理程序,如RJS,ERB和Builder,它们提供一些帮助。实现Rails 3模板处理程序
我试图实现自己的,我已经成功,虽然有一些奇怪的代码,或者可能有一些我不太明白。
class MyHandler < ActionView::Template::Handler
def call(template)
template.source.inspect
end
end
那么,有什么奇怪的是,我有打电话给inspect
,否则Rails会尝试EVAL字符串作为Ruby代码。
我的印象是这就是include ActionView::...::Compilable
所做的(我不包括在我的代码中)。
现在,如果我使我的模板“可编译”(通过使用include...
语句),它仍然会查找call
方法而不是compile
方法。
所以任何人都可以向我解释一下这是如何工作的?
谢谢!