You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Fixed it with following monkey patch (I changed the suggested patch a little bit):
module ActionController
module Caching
class Sweeper < ActiveRecord::Observer
attr_accessor :controller
def initialize
@controller_stack = []
super
end
def before(controller)
@controller_stack << controller
self.controller = controller
callback(:before) if controller.perform_caching
end
def after(controller)
callback(:after) if controller.perform_caching
@controller_stack.pop
self.controller = @controller_stack.last
end
end
end
end
So all Sweepers are saving all calling controllers instead of only one...
Hi,
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...
The text was updated successfully, but these errors were encountered: