Initializer Railtie non funziona in plug -in
-
30-10-2019 - |
Domanda
Di recente sono passato dalla versione GEM di resources_controller
a a plugin
come la gem
versione invocata git
.
Dentro il vendor/plugins/plugin/lib/plugin.rb
file, il Railtie
è come segue:
module Ardes
module ResourcesController
class Railtie < Rails::Railtie
initializer 'ardes.resources_controller' do
ActiveSupport.on_load(:action_controller) do
extend Ardes::ResourcesController
include Ardes::ResourcesController::RequestPathIntrospection
end
ActiveSupport.on_load(:active_record) do
include Ardes::ActiveRecord::Saved
end
end
end
end
end
Ho aggiunto un require 'resources_controller'
In uno dei miei inizializzatori e sta caricando correttamente questo file. Il problema è che sebbene il Railtie
viene valutato (a puts
Nel blocco di classe colpirà), non sembra mai chiamare effettivamente il blocco iniziale stesso. Questo è ovviamente importante in quanto è qui che si estende ActionController
per includere il resources_controller_for
metodo.
Sembra che questa domanda sia emersa qui e qui. Sebbene in entrambi i casi abbiano trovato altri modi per aggirare il problema e non è stata data alcuna risposta diretta per il motivo per cui il blocco non è stato chiamato.
Da quello che posso dire nei Doc di Rails puoi nominare il blocco iniziale di qualsiasi cosa tu voglia e dovrebbe funzionare. Non penso che sia importante, ma ho notato per la prima volta il problema quando corro in produzione rails s -e production
Anche se credo che lo stesso problema esista in modalità di sviluppo.
Cosa potrebbe succedere?
Per riferimento, il plugin completo è qui: https://github.com/ianwhite/resources_controller
Nessuna soluzione corretta