require 'liquid'
require 'extras/liquid_view'
if defined? ActionView::Template and ActionView::Template.respond_to? :register_template_handler
ActionView::Template
else
ActionView::Base
end.register_template_handler(:liquid, LiquidView)
这个init.rb文件运行的是什么,是一次性还是应用程序加载?
是否只是在ActionView :: Template或ActionView:Base类上调用regiser_template_handler方法?
它是如何对任何一个起作用的?
答案 0 :(得分:1)
这个init.rb文件运行的是什么,是一次性还是应用程序加载?
当应用程序加载并加载插件/宝石时,它会运行一次。
是否只是在ActionView :: Template或ActionView:Base类上调用regiser_template_handler方法?
是。如果ActionView::Template
已定义并响应register_template_handler
,则会在其上调用register_template_handler
,否则会在ActionView::Base
上调用它。
它是如何对任何一个起作用的?
我不确定你到底是什么意思?如果你的意思是为什么它是这样的,它是为了向后兼容。 ActionView::Template
在rails中是相对较新的(我认为在v2.1中引入),所以我猜它会在与旧版本一起使用时优雅地回退。