Rotaie Motore: Estendere modello con classe di applicazione
-
25-09-2019 - |
Domanda
Ho un motore in vendor / plugins. Il mio problema è che ho apparentemente riesco estendo il-modello di motore con un modello nell'applicazione di base.
La mia struttura di cartelle:
APPNAME
-app
-models
-item.rb
-vendor
-plugins
-image_gallery
-app
-models
-image_gallery.rb
Niente di speciale ... nella mia image_gallery.rb ho appena questo:
class ImageGallery < Item
end
Ma Rails si lamenta metodi mancanti che sono definite in item.rb. Se li definisco in image_gallery.rb, funziona.
Soluzione
Si può cercare di config.cache_classes = true
insieme nella vostra development.rb
Altri suggerimenti
Credo che questo sia un problema ordine di caricamento. La directory fornitore non viene ricaricata in modalità di sviluppo. Il modello in vostro app non è stato caricato quando modello motore cerca di ereditare da essa.
Mi dispiace non so una correzione per questo e non ho mai trovato uno. Credo che le rotaie 3 saranno affrontando questo. Normalmente solo continuare i relativi modelli nello stesso motore o spostare la roba del motore fino in applicazione principale per evitarlo. Questo fa schifo e mi piacerebbe conoscere la giusta soluzione.
Prova in modalità di produzione e non si dovrebbe avere il problema. Si potrebbe guardare con fucile da caccia, se questo è il caso.