Существует несколько способов включить ресурсы, относящиеся к контроллеру, в Rails:
Один вариант, который не является СУХИМЫМ, - это добавить = yield :head
в макет и content_for(:head) { ... }
в каждое представление верхнего уровня. Если актив зависит от контроллера, его следует указывать только один раз для каждого контроллера, а не для каждого представления.Конечно, этот подход хорош для просмотра -специфичных активов.
Второй вариант, который не является декларативным, заключается в добавлении ресурса, соответствующего имени контроллера, если он существует .Вместо того, чтобы проверять, существует ли что-то, я должен просто сказать (где это уместно), что оно существует и должно быть включено.Кроме того, я не уверен, будет ли кеширован ответ, чтобы избежать снижения производительности во время выполнения.С положительной стороны, этот подход не потребует каких-либо изменений в представлениях или контроллерах, но он может открыть возможность столкновения имен, особенно в устаревших моделях.
Третий вариант - включает все активы типа в одном файле .Браузеры не должны загружать ненужные им ресурсы, и это затруднит отладку приложения.Этот вариант подойдет, если общий размер актива по-прежнему поддается управлению.
Есть ли способ декларативно включить один специфичный для контроллера актив в отдельный файл DRY без нарушения модели MVC с использованием очень небольшого кода?