Как мне динамически требовать активы в конвейере ресурсов Rails 3.1?

У меня есть система на основе плагинов, которую я использую для разработки приложений в Rails. Каждый плагин реализует движок с компонентами MVC и т. Д. Основное приложение - это просто пустой жгут, который делегирует всю работу установленным плагинам.

В настоящее время я обновляюсь до Rails 3.1 с Rails 2.3.5, и пытаюсь заставить конвейер ресурсов работать с моей структурой.

Проблема, с которой я сталкиваюсь, заключается в том, чтобы попытаться программно запросить ресурсы моего плагина, например, в манифесте application.js.

Я могу вручную добавить их так:

//= require <plugin_manifest_path>

И все работает как положено. Тем не менее, поскольку в моей среде присутствуют десятки плагинов, и каждая установка имеет свое сочетание, я хочу, чтобы это явное изменение зависело от того, какие плагины установлены. Я попытался это как решение:

<%=
Rails.plugins.collect do |plugin|
  "//= require #{plugin}"
end.join("\n")
%>

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

Есть ли другой механизм для включения путей для компиляции, который может работать? Любой способ предварительно обработать файл манифестадо сработает директивная обработка?

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

РЕДАКТИРОВАТЬ: Решение найдено, опубликует полное решение, как только stackoverflow позволит мне. Смотрите комментарии ниже в то же время ...

Ответы на вопрос(1)

Ваш ответ на вопрос