Вы можете разделить свой JavaScript на библиотеки (.js.erb
или просто .js
) и данные конфигурации (например, var foo
). Затем оставьте весь библиотечный код в руках Sprocket и поместите свою конфигурацию в ваши обычные представления ERB (возможно, встроенные в ваши макеты).
Вы также можете передавать данные конфигурации через отдельный контроллер (возможно, /config.js
), если это лучше соответствует вашей архитектуре.
Этот подход позволяет избежать всей вашей проблемы путем отделения статических библиотек от нестатических данных. Кроме того, этот подход прекрасно согласуется с конвейером ресурсов Rails 3.1, где вы должны предварительно скомпилировать все перед производственными развертываниями.