Railtie Initialiseur qui ne fonctionne pas dans le plugin
-
30-10-2019 - |
Question
J'ai récemment passé de la version GEM de resources_controller
à un plugin
comme le gem
Version invoquée sur git
.
À l'intérieur de vendor/plugins/plugin/lib/plugin.rb
fichier, le Railtie
est comme suit:
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
J'ai ajouté un require 'resources_controller'
Dans l'un de mes initialiseurs et il charge correctement ce fichier. Le problème est que bien que le Railtie
est évalué (un puts
Dans le bloc de classe, il frappera), il ne semble jamais appeler le bloc d'initialiseur lui-même. C'est important bien sûr car c'est là que cela s'étend ActionController
Pour inclure le resources_controller_for
méthode.
Cette question semble être apparue ici et ici. Bien que dans les deux cas, ils ont trouvé d'autres façons de contourner le problème et aucune réponse directe n'a été donnée pour expliquer pourquoi le bloc n'était pas appelé.
D'après ce que je peux dire dans les documents Rails, vous pouvez nommer votre bloc d'initialiseur tout ce que vous souhaitez et il devrait fonctionner. Je ne pense pas que cela compte, mais j'ai d'abord remarqué le problème lors de la production en production rails s -e production
Bien que je crois que le même problème existe en mode développement.
Qu'est-ce qui peut se passer?
Pour référence, le plugin complet est ici: https://github.com/ianwhite/resources_controller
Pas de solution correcte