Есть ли в Rails способ выборочной загрузки файлов в представлении из макета приложения? - PullRequest
0 голосов
/ 22 апреля 2010

Итак, в моем приложении на Rails я пытаюсь настроить тестирование Javascript для определенных представлений.

Прямо сейчас я делаю это, имея условные выражения в каждом представлении ..

<% if AppConfig['js_testing'] %>
<script>
...
</script>
<% end %>

Если у меня есть это на каждой странице, есть много дублирования кода. Есть ли способ управлять всем из макета приложения?

1 Ответ

0 голосов
/ 22 апреля 2010

Есть несколько мест, где вы можете поместить это, что поможет уменьшить дублирование. Основной макет является идеальным кандидатом. Другой возможностью является вспомогательный метод, который намного проще внедрить.

Вы также можете определить условный вспомогательный метод javascript_tag, который будет вводить JavaScript, только если ваш триггер установлен. Обычно это в духе:

def javascript_testing_tag(content)
  AppConfig['js_testing'] ? javascript_tag(content) : ''
end

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

Оптимальная реализация зависит от того, какой тип скриптового контента вы вводите. Если он тесно связан с JavaScript, который может отображаться в определенном представлении, вы можете застрять в этом.

В качестве альтернативы можно просто пометить каждую страницу и использовать тестовый комплект JavaScript, который будет запускать определенное поведение в зависимости от структуры документа. Например, если есть элемент div # user_list, вы можете запустить testUserList ().

В таком случае просто не включать тестовый файл JavaScript в не тестируемые среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...