Pregunta

Recientemente cambié de la versión gema de resources_controller a un plugin como el gem Versión confiada en git.

Dentro de vendor/plugins/plugin/lib/plugin.rb archivo, el Railtie es como sigue:

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

He agregado un require 'resources_controller' En uno de mis inicializadores y está cargando correctamente este archivo. El problema es que aunque el Railtie se evalúa (un puts En el bloque de clase llegará), nunca parece llamar al bloque de inicializador en sí. Esto es importante, por supuesto, ya que aquí es donde se extiende ActionController para incluir el resources_controller_for método.

Esta pregunta parece haber surgido aquí y aquí. Aunque en ambos casos encontraron otras formas en torno al problema y no se dio una respuesta directa de por qué no se llamaba al bloque.

Por lo que puedo decir en los documentos de Rails, puede nombrar su bloque de inicializador que desee y debe funcionar. No creo que importe, pero primero noté el problema cuando se ejecuta en producción. rails s -e production Aunque creo que existe el mismo problema en el modo de desarrollo.

¿Qué puede estar pasando?

Como referencia, el complemento completo está aquí: https://github.com/ianwhite/resources_controller

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top