title: Expiration of controller action from Sweeper does not work
body: <p>Having a controller handling rendering of large XML feeds</p>
  
  <pre><code>module Spree
    class FeedsController &lt; Spree::StoreController
      ...
  
      caches_action :products_out
      cache_sweeper FeedSweeper
  
      # XML feed in format of `xxxxxxx.com'
      def products_out
        @products = Product.all
        respond_to do |format|
          format.xml
        end
      end
  end
  </code></pre>
  
  <p>Bellow is the corresponding sweeper's sublass:</p>
  
  <pre><code>module Spree
    class FeedSweeper&lt; ActionController::Caching::Sweeper
      observe Product
  
      def after_update(product)
        # cache_configured? is nil, @controller is nil here, why ?
        expire_action(:controller =&gt; :feeds,
                      :action     =&gt; :products_out,
                      :format     =&gt; :xml)
      end
  end
  </code></pre>
  
  <p>Above <code>Spree::FeedSweeper</code> <strong>is</strong> called when <code>Spree::Product</code> gets updated, however it seems <code>expire_action</code> silently dies and cache won't get invalidated.</p>
  
  <p>Can somebody explain the issue ? Even better suggest some solution ?</p>
  
  <p>Thanks.</p>