看來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
方法。
所以任何人都可以向我解釋一下這是如何工作的?
謝謝!