简体   繁体   中英

Rails Controller Namespace Inheritance Missing Layout

Using a namespaced controller and the app's Application layout isn't being loaded.

# 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

A pretty basic setup here. Anytime I route to /servers/:id it loads the page with the parameter, but the application layout does not load. I have a series of a couple controllers I'd like to all inherit from this BaseController to initialize a few things. I also noticed that besides the layout issue, the BaseController doesn't have access to url parameters. The TestController does though... Can anyone explain these two issues I'm seeing?

Rails 5.1.4

ruby 2.4.1p111

Figured out my issue. Don't use an initialize method in your class. Rails doesn't like that. Use before_action instead.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM