जब वैश्विक एप्लिकेशन नियंत्रक पहले लोड होता है, तो नेमस्पेस एप्लिकेशन नियंत्रक उस नामस्थान के भीतर पृष्ठों को लोड करते समय लोड नहीं होता है। आवेदन नियंत्रक इस तरह दिखता है:रेल 3.2.3 नाम नियंत्रक नियंत्रकों को उसी नाम के साथ वैश्विक नियंत्रकों द्वारा ओवरराइड किया जा रहा है
class ApplicationController < ActionController::Base
protect_from_forgery
end
और namespaced आवेदन नियंत्रक इस तरह दिखता है: "authenticate_admin"
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
जब हम before_filter का उपयोग इस तरह:
class Admin::AssetsController < Admin::ApplicationController
before_filter :authenticate_admin!
end
एक "व्यवस्थापक में NoMethodError :: AssetsController # नया" फेंक दिया है। यह तब होता है जब हम नामित मार्ग से पहले वैश्विक मार्ग पर पहुंचते हैं। यदि सर्वर पुनरारंभ होता है और नामित मार्ग लोड होता है तो पहले सब ठीक से काम करता है।
इन नियंत्रकों में कौन सी फाइलें हैं? –
ऐप/नियंत्रक/व्यवस्थापक/application_controller.rb, ऐप/नियंत्रक/व्यवस्थापक/assets_controller.rb और ऐप/नियंत्रक/application_controller.rb –