Wil*_*ill 5 ruby ruby-on-rails liquid
我们在网络应用中使用液体.我注意到Shopify已经实现了一些有用的过滤器,这些过滤器默认不包含在液体宝石中.例如url_param_escape
为了测试它我做了这个:
$ IRB
需要'液体'液体:: Template.parse('{{"&"| url_param_escape}}').render =>"&"
显然,默认情况下不包括这些过滤器.他们可以从某个地方获得吗?如果是这样,我在哪里以及如何将它们添加到解析器?否则是一个接一个地实现它们还是来自同一个模块或什么的?
您可以/必须自己编写它们。它们很容易创建。以下是 url_param_escape 过滤器的示例实现:
module MyApp
module Liquid
module Filters
module UrlParamFilter
def url_param_escape(thing_to_escape)
CGI.escape(thing_to_escape)
end
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
然后您需要注册这个过滤器,以便 Liquid 知道使用它。我通常在 config.after_initialize 内的 application.rb 中执行此操作,但如果您有很多,可能会有更好的地方。这是一个例子:
config.after_initialize do
::Liquid::Template.register_filter(MyApp::Liquid::Filters::UrlParamFilter)
end
Run Code Online (Sandbox Code Playgroud)