I discovered this error with ActiveScaffold:
If you have sweepers activated, you will get a NoMethodError, because Sweepers after action is called twice.
First time, it sets self.controller = nil, so second time it fails to get controller_name.
This behaviour is mentioned in http://dev.rubyonrails.org/ticket/6199, but since components were removed from rails it was never fixed there...
Fixed it with following monkey patch (I changed the suggested patch a little bit):
class Sweeper < ActiveRecord::Observer
@controller_stack = 
@controller_stack << controller
self.controller = controller
callback(:before) if controller.perform_caching
callback(:after) if controller.perform_caching
self.controller = @controller_stack.last
So all Sweepers are saving all calling controllers instead of only one...