Domanda

Senza un sacco di codice specifico, questo è solo vaga, ma io fornire quello che posso.

Dato un rotaie motore, un motore di base e non un motore montabile nel proprio spazio, come faccio a rendere metodi dal motore disponibili per l'applicazione come before_filter per i controllori applicazioni?

Ho cercato attraverso il codice Devise, perché quello che voglio è simile dalla mia esperienza con Devise, ma devo ammettere che non capisco un sacco di quello che sto andando oltre.

posso fare questo se metto include Myengine::Mymodule nei controllori applicazioni dove voglio avere i metodi disponibili per filtrare, ma voglio la possibilità di utilizzare solo i metodi, senza dover includere i moduli.

Questo è l'ultimo posto di blocco nel tentativo di trasformare un'applicazione Rails in un motore per essere utilizzati da più applicazioni rotaie, e nessuna guida su come ottenere una maniglia sulla corretta namespacing, modulo di configurazione, ecc, è apprezzato.

È stato utile?

Soluzione

Se ho capito bene è possibile utilizzare inizializzatore, ad esempio:

module MyEngine
    class Engine < Rails::Engine
        initializer  "myengine.load_helpers" do
            ActiveSupport.on_load(:action_controller) do
                include MyEngine::Helpers
            end
        end
    end
end
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top