2010-01-04 5 views
3

Я хочу создать схему Ruby on Rails и должно быть в формате Liquid.Использование Liquid as Ruby on Rails layout

В основном, что я пытаюсь сделать, это позволить пользователям создавать свои собственные макеты и сохранять их в базе данных.

Я пытался использовать <%= Liquid::Template.parse(<code from database>).render %> в моем файле layout.erb но я не могу использовать команду «выход» (так как это макет я должен иметь способ рендеринга страниц.)

Но когда я использую «layout.liquid» с {{ content_for_layout }} это будет работать найти НО, не может загрузить информацию из базы данных (я имею в виду HTML код ..)

Я надеюсь, что я сделал себе ясно: D)

+0

@ sameera207: «Жидкость», как в http://www.liquidmarkup.org/? Или это прилагательное? –

ответ

4

Взгляните на этот Ruby on Rails плагин:

http://github.com/akitaonrails/dynamic_liquid_templates

Далее мы должны найти способ, чтобы перехватывать Поведение Ruby on Rails по умолчанию для вашего контроллера.

class MyAwesomeController 
    layout :get_my_db_layout 
    .... 
    protected 
    def get_my_db_layout 
    'as_if_by_a_miracle.liquid' # add your db finder here   
    end 
end 

Затем перезаписать LocalFileSystem#read_template_file с собственным классом/метод, чтобы получить шаблон из базы данных. LocalFileSystem#read_template_file - класс жидкости.

Я надеюсь, что эта идея полезна.

+0

sameera207 это решило вашу проблему для вас? используйте его прямо сейчас и получая лапшу, обернутую вокруг того, как акита использовал макеты для визуализации этого материала, сейчас болит голова. Любые обновления или блог t будет потрясающе! – pjammer

+0

Да, я хочу знать, если это сработало! –

2

пожалуйста читать статью Тобиса о

http://wiki.github.com/shopify/liquid/getting-liquid-to-work-in-rails

или посмотреть на этот скринкаст

http://railscasts.com/episodes/118-liquid

+0

Hi crazyrails, благодарит за ваш ответ. Но мой вопрос остается :(, coz Я хочу сохранить свой код макета в базе данных. (Пример: ..) Но моя проблема в том, что в режиме рельсов есть метод <%= yield%>, я не могу сделать это в своем layout.erb file A; m Я делаю что-то не так, или снова есть альтернативная благодарность. – sameera207

+0

Возможно - это то, что вы хотите: Создайте контроллер с указательным действием. В контроллере вы должны поместить все Жидкость :: Template.parse (<код из базы данных>) .Приставляйте вещи присваивать его переменной @output. В вызове индексного представления <% = @output%>. – crazyrails

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