Создавайте свои собственные теги / функции с Erubis

У меня есть класс ruby, расширяющий Erubis (шаблонизатор ruby), и я хотел бы создать свои собственные теги. Ниже приведен пример того, что я хотел бы воспроизвести:

<%= link_to "/some/url" %>

Этот код должен генерировать HTML-тег 'a', ссылающийся на какой-либо URL. Теперь я хотел бы иметь возможность создавать свои собственные теги, такие как:

<%= javascript_file "/some/javascript/file" %>

который будет генерировать тег сценария, ссылающийся на какой-либо файл JavaScript по моему выбору.

Как я могу легко расширить Erubis, чтобы сделать это?

Спасибо за ваше время.

1 ответ

Решение

Это просто вызовы функций, которые возвращают тег в строку:

def javascript_file( file_path )
    "<script src=\"#{ file_path }\" type=\"text/javascript\"/>"
 end

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

Другие вопросы по тегам