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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top