Un modo per aggiungere before_filter dal motore alla applicazione
-
27-10-2019 - |
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.
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