我在我的应用程序中使用液体插件。在使用 form_for、check_box_tag 等 Rails 辅助方法时,我收到一个错误 form_for not defined..
有人知道如何通过液体插件使用rails helper 方法吗?
我在我的应用程序中使用液体插件。在使用 form_for、check_box_tag 等 Rails 辅助方法时,我收到一个错误 form_for not defined..
有人知道如何通过液体插件使用rails helper 方法吗?
不久前我刚刚处理过这个问题——如果你想更好地理解扩展普通过滤器需要什么(包括你可能想要的辅助方法),我发现这个 Railscast 非常有用: http ://railscasts.com/episodes /118-液体
基本上,您需要设置自己的过滤器文件并包含您要使用的帮助器模块,然后添加一个使用该帮助器的方法(过滤器)。这并不难,只需一秒钟即可设置。在 Ryan 的示例中,他在 lib 中设置了一个名为 LiquidFilters 的模块,包括他想要的数字助手并将其设置为使用货币过滤器,如下所示:
# lib/liquid_filters.rb
module LiquidFilters
include ActionView::Helpers::NumberHelper
def currency(price)
number_to_currency(price)
end
end
然后你所要做的就是记住当你解析要添加的液体内容时 :filters => [LiquidFilters] (获取你想要使用的过滤器模块数组)并且它应该自动拾取它。此方法还确保如果您想设置更多自定义过滤器或修改辅助过滤器,您可以轻松直观地执行此操作。
您可以直接使用 html 代码作为实例,而不是使用link_to(不起作用!),在液体模板中,您可以编写带有液体标签的 html 代码:
<a href="{link}">{{link_name}}</a>"
有人知道如何通过液体插件使用rails helper 方法吗?
Liquid 有自己的助手,称为过滤器。请参阅https://github.com/Shopify/liquid/wiki/Liquid-for-Designers。
您可以决定在将值传递给液体之前应用帮助程序,或者扩展液体注册您自己的过滤器(请参阅https://github.com/Shopify/liquid/wiki/Liquid-for-Programmers)。
如果您将 Liquid 注册为 Rails 模板处理程序,Liquid 会尝试使用您的帮助程序作为过滤器。
但是,您需要使用 Liquid 语法。
{{ 'This is a long section of text' | truncate: 3 }}
不是
{{ truncate('This is a long section of text', 3) }}
看看这个名为“Clots”的 Liquid 项目。据说它解决了这个问题(我没有亲自使用它)。