The link in the accepted answer does not actually provide an example to overriding a controller. They mention "open classing" the file, but don't explain how exactly to do it. If you open the engine class in your app, you will get a circular dependency error because you are referencing/opening a class that is currently in the process of being defined. Therefore, you need to make sure you load the engine's actual class first.
# in my app
# app/controllers/blazer/base_controller.rb
load Blazer::Engine.root.join('app/controllers/blazer/base_controller.rb')
Blazer::BaseController.class_eval do
filter_access_to :all
end
In my case, I'm using the Blazer gem and adding authentication to it. Since I use declarative authorization, which Blazer does not directly support, I need to open up Blazer's base controller and add my authorization requirement to it.