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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top