L'utilisation d'un contrôleur avec espace de noms et de la mise en page de l'application n'est pas en cours de chargement.Rails Controller Namespace Inheritance Missing Layout
# controllers/application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
end
# controllers/servers/base_controller.rb
module Servers
class BaseController < ApplicationController
def initialize
# I noticed params are not accessible here either...
# Only in the child controller.
end
end
end
# controllers/servers/test_controller.rb
module Servers
class TestController < BaseController
def index
end
end
end
Une configuration assez basique ici. Chaque fois que je route vers /servers/:id
, il charge la page avec le paramètre, mais la disposition de l'application ne se charge pas. J'ai une série de deux contrôleurs que je voudrais hériter de ce BaseController pour initialiser quelques choses. J'ai également remarqué que, en plus du problème de mise en page, le BaseController n'a pas accès aux paramètres url. Le TestController le fait ... Quelqu'un peut-il expliquer ces deux problèmes que je vois?
Rails 5.1.4
rubis 2.4.1p111
Juste un pressentiment mais ça pourrait être bien si vous appelez 'super' dedans. – ulferts
Merci @ulferts. C'est la première chose que j'ai essayé. Si je me souviens bien, cela a fonctionné pour la mise en page, mais les variables d'instance ne se propageaient pas aux autres contrôleurs. Mais l'utilisation de 'before_action' a corrigé les deux problèmes que j'avais. – Chris