2009-06-19 9 views
3

Я использую жидкий плагин в своем приложении. При использовании методов вспомогательных рельсов, таких как form_for, check_box_tag, я получаю сообщение об ошибке form_for не определено.Жидкостный плагин

Кто-нибудь знает, как использовать методы помощников рельсов через жидкий плагин?

ответ

1

ли кто-нибудь знает, как использовать Рельсы вспомогательные методы через жидкий плагин?

Жидкость имеет свои собственные помощники, называемые фильтрами. См. https://github.com/Shopify/liquid/wiki/Liquid-for-Designers.

Вы можете либо принять решение об использовании хелпера перед передачей значения жидкости, либо продлить действие жидкости, регистрируя ваши собственные фильтры (см. https://github.com/Shopify/liquid/wiki/Liquid-for-Programmers).

Если вы регистрируете жидкость как обработчик шаблонов Rails, Liquid пытается использовать ваши помощники в качестве фильтров.

Однако вам необходимо использовать синтаксис Liquid.

{{ 'This is a long section of text' | truncate: 3 }} 

Не

{{ truncate('This is a long section of text', 3) }} 
5

Я просто справиться с этим не так давно - если вы хотите лучше понять, что требуется, чтобы расширить обычные фильтры (в том числе вспомогательных методов, которые вы можете захотеть) I нашел это Railscast очень полезно: http://railscasts.com/episodes/118-liquid

В принципе, вам нужно настроить свой собственный файл фильтра и включить вспомогательные модули, которые вы хотите использовать, а затем добавить метод (фильтр), который использует этот помощник. Это не сложно, просто требуется секунда для настройки. В примере Райана он устанавливает модуль в Lib называется LiquidFilters, включает в себя вспомогательный номер он хотел, и установить его на использование валюты фильтр как так:

# lib/liquid_filters.rb 
module LiquidFilters 
    include ActionView::Helpers::NumberHelper 

    def currency(price) 
    number_to_currency(price) 
    end 
end 

Тогда все, что вам нужно сделать, это помнить, когда вы анализируя содержимое жидкости, чтобы добавить: filters => [LiquidFilters] (принимает массив фильтрующих модулей, которые вы хотите использовать), и он должен автоматически поднимать его. Этот метод также гарантирует, что если вы хотите настроить какие-либо дополнительные фильтры или изменить вспомогательные фильтры, у вас будет простое и интуитивное место для этого.

1

Вы можете использовать непосредственно HTML-код, так как, например, вместо использования link_to (не работает!), Внутри жидкой матрицы, вы можете написать HTML код с жидкими тегами:

<a href="{link}">{{link_name}}</a>" 

 Смежные вопросы

  • Нет связанных вопросов^_^