2012-06-07 1 views
0

Мой механизм шаблонов по умолчанию - haml, но я бы иногда менял его на erb, если я указываю конкретный параметр?Как я могу динамически изменить мой движок рендеринга в рельсах?

Например, я вставляю в некоторый html-код и хотел бы протестировать код без HAML, жалующегося на его формат.

Любая идея, как это сделать?

+0

Связанные вопросы: http://stackoverflow.com/questions/339130/how-do-render-a-partial-of-a-different-format-in-rails, http://stackoverflow.com/ вопросы/6125265/с использованием-макеты-в-Haml-файлы-независимо от рельсов. –

ответ

3

сделать что-то вроде:?

if params[:render_erb] 
    render 'file.html.erb' 
else 
    render 'file.html.haml' 
end 

и вызвать действие с render_erb = истинный

или

render "file.html.#{params[:render]}" ir params[:render] 

и называют его визуализация = Haml или оказывать = Еврорадио (или ничего, и он будет использовать значение по умолчанию

в конце действия контроллера, которое вы используете

+0

Я пробовал это, и он не переключается на версию haml ever ... визуализировать «connect.html.erb» ИЛИ визуализировать «connect.html.haml» – Kamilski81

+1

Я думаю, что это должно быть рендеринг: file => '/ path/to/file', обратите внимание, что ему нужна абсолютная система путь не относительный путь, и вам нужно будет указать: layout => true! – DVG

+0

Вы правы, пожалуйста, отредактируйте свой ответ выше, чтобы иметь: file => "" – Kamilski81

0

Я ошибаюсь, что вам просто нужно сохранить файл как your_file.html.erb вместо your_file.html.haml?

+0

Ну, я сделал это, но теперь он каждый раз поднимает мой erb, я хочу, чтобы эта часть была условной ... если X использовать HAML else, используйте ERB ?? – Kamilski81

+0

Затем используйте частичные. – Hauleth

0

Вы можете использовать разные шаблоны в одном приложении, и вы можете использовать разные механизмы шаблонов для просмотров, partials и layouts, но насколько я знаю, вы не можете уклоняться от нескольких движков шаблонов в одном и том же файл шаблона.

Если вы просто хотите удалить какой-либо код с использованием другого языка шаблонов, я бы поместил его в отдельный фрагмент. Это, безусловно, кажется самым простым в этом конкретном случае.

+0

Я не имею в виду использование разных движков в одном файле шаблона, я просто хочу ввести условие в моем контроллере, говоря «использовать версию erb» ИЛИ «использовать версию haml» – Kamilski81