When the global application controller is loaded first, the namespaced application controller does not load when loading pages within that namespace. The application controller looks like this:
class ApplicationController < ActionController::Base
protect_from_forgery
end
And the namespaced application controller looks like this:
class Admin::ApplicationController < ApplicationController
def authenticate_admin!
if current_admin.nil?
redirect_to new_admin_session_url
end
end
private
def current_admin
@current_admin ||= Admin.find(session[:admin_id]) if session[:admin_id]
end
helper_method :current_admin
end
When we use the before_filter "authenticate_admin!" like this:
class Admin::AssetsController < Admin::ApplicationController
before_filter :authenticate_admin!
end
A "NoMethodError in Admin::AssetsController#new" is thrown. This only occurs when we hit the global route before the namespaced route. If the server is restarted and the namespaced route is loaded first everything works properly.