Sto provando a creare un motore Rails "backend di amministrazione". Supponiamo che il motore ha i seguenti beni:Sovraccarico di asset sui motori di Rails: richiede un file di asset della gemma secondario non riuscito
ENGINE/app/assets
├── javascripts
│ └── railsyard
│ ├── admin.js.coffee
│ ├── admin_customizations.js.coffee
...
Qualora il admin.js.coffee
sta richiedendo admin_customizations.js.coffee
, cioè un file vuoto pronto per essere sovrascritto dal hosting di applicazioni Rails.
[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!
Tutto funziona a meraviglia, fino a quando provo a richiedere alcuni beni provenienti da una gemma secondario:
[APP/app/assets/javascripts/my_engine/admin_customizations.js.coffee]
#= require modernizr # this line gets ignored
alert "Foobar" # this line works
La gemma modernizr-rails
è una dipendenza della app di hosting piuttosto che il motore. Si noti che se provo a richiedere modernizr
da un file di asset che non è un override di alcuni file di asset del motore, tutto funziona di nuovo.
C'è un modo per risolvere questa situazione?
C'è qualche vantaggio nel file di sovrascrittura? Voglio dire, lo sviluppatore può semplicemente aggiungere il suo js. – thomasfedb
potrebbe essere correlato a http://stackoverflow.com/questions/18261116/how-to-change-the-order-that-gems-are-loaded-from-within-one-of-the-gems – montrealmike