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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top