鑑於以下控制器的結構:Rails模塊將範圍
# application_controller.rb
class ApplicationController < ActiveController::Base; end
# pages_controller.rb
class PagesController < ApplicationController; end
# admin/application_controller.rb
module Admin
class ApplicationController < ::ApplicationController; end
end
# admin/pages_controller.rb
module Admin
class PagesController < ApplicationController; end
end
人們會預期Admin::PagesController
從Admin::ApplicationController
繼承它。但我注意到它有時從::ApplicationController
繼承。
所以我決定不冒這個險,並在/admin
改變所有控制器的聲明,專門針對Admin::ApplicationController
# admin/pages_controller.rb
module Admin
class PagesController < Admin::ApplicationController; end
end
好這樣的作品,但我知道這是擺在首位正確的。爲什麼Rails有時會從錯誤的控制器繼承?
Admin::PagesController
有時ApplicationController
而不是Admin::ApplicationController
繼承,儘管在同一module Admin
我也遇到過類似的問題! – Hardik