Estoy intentando construir un motor Rails de "administración". Supongamos que el motor tiene los siguientes activos:Sobrecarga de activos en motores Rails: requiere que falle un archivo de activos de gema secundario
ENGINE/app/assets
├── javascripts
│ └── railsyard
│ ├── admin.js.coffee
│ ├── admin_customizations.js.coffee
...
Cuando el admin.js.coffee
está requiriendo admin_customizations.js.coffee
, es decir, un archivo vacío listo para ser sobrescrita por la aplicación Rails hospedaje.
[ENGINE/app/assets/javascripts/my_engine/admin.js.coffee]
#= require admin_customizations
# ...some code...
[ENGINE/app/assets/javascripts/my_engine/admin_customizations.js.coffee]
# Override this empty file to add custom JS behaviour!
Todo funciona de maravilla, hasta que intento para requerir algunos activos procedentes de una joya secundaria:
[APP/app/assets/javascripts/my_engine/admin_customizations.js.coffee]
#= require modernizr # this line gets ignored
alert "Foobar" # this line works
La gema modernizr-rails
es una dependencia de la aplicación de alojamiento en lugar del motor. Tenga en cuenta que si trato de requerir modernizr
de un archivo de activos que no sea una anulación de algún archivo de activo del motor, todo funciona nuevamente.
¿Hay alguna manera de arreglar esta situación?
¿Hay alguna ventaja en el archivo de anulación? Quiero decir, el desarrollador solo puede agregar su propio js. – thomasfedb
podría estar relacionado con http://stackoverflow.com/questions/18261116/how-to-change-the-order-that-gems-are-loaded-from-withinone-of-the-gems – montrealmike