液体将数据传递给过滤器
Liquid pass data to a filter
我有一个包含很多层的应用程序,其中每一层都有自己的液体模板。
现在我正在尝试实现一个过滤器,给定资产名称 returns 其 url,就像 shopify 中的 asset_url
。
module UrlFilters
def asset_url(input)
current_tier.find_asset_by_name(input).url
end
# [...]
end
每次调用时将 current_tier
变量传递给过滤器的最简单模式是什么?
使用上下文寄存器哈希。
module UrlFilters
def asset_url(input)
@context.registers[:current_tier].find_asset_by_name(input).url
end
# [...]
end
template = Liquid::Template.parse(some_template)
template.render({}, filters: [UrlFilters], registers: { current_tier: current_tier })
我有一个包含很多层的应用程序,其中每一层都有自己的液体模板。
现在我正在尝试实现一个过滤器,给定资产名称 returns 其 url,就像 shopify 中的 asset_url
。
module UrlFilters
def asset_url(input)
current_tier.find_asset_by_name(input).url
end
# [...]
end
每次调用时将 current_tier
变量传递给过滤器的最简单模式是什么?
使用上下文寄存器哈希。
module UrlFilters
def asset_url(input)
@context.registers[:current_tier].find_asset_by_name(input).url
end
# [...]
end
template = Liquid::Template.parse(some_template)
template.render({}, filters: [UrlFilters], registers: { current_tier: current_tier })