I don't think there are enough details here to really answer your question, but here are a few questions:
The sweeper should start regardless of the full_report action, so if you make changes to the company, you should see a debugger fire (which looks like this is happening correctly). Then you do not need to run the full_report action, so at this point you can verify that the cached file has been deleted. It would be useful to go through expire_action in the debugger to find out if the rails are missing for another reason.
EDIT: oh, you know that, I was just splitting into this, and it looks like expire_action is expected to work in the controller context (I read the source of the gems in the actionpack). It assumes that the "I" is the controller, so your pass in the option: the controller is ignored.
Other examples provide a specific string instead of parameters (for example, expire_action '/reports/full_report' ). I donβt like it personally - itβs not using a router --- but it seems like it will work.
Perhaps you should switch to this method, make sure that it works, and then in the debugger see if you have access to url_for. it can be as simple as expire_action url_for(:controller => 'reports', :action => 'full_report')
source share