title: "You are trying to cache a Ruby object which cannot be serialized to memcached."
body: <p>I've been having some caching problems with a footer that is shared across multiple sites, and I'm wondering what might be up. Here's the error message and the backtrace:</p>
  
  <pre><code> Cache read: remote_footer_information ({:expires_in=&gt;300 seconds})
   Cache generate: remote_footer_information ({:expires_in=&gt;300 seconds})
   Cache write: remote_footer_information ({:expires_in=&gt;300 seconds})
   Marshalling error for key 'remote_footer_information': no _dump_data is defined for class Proc
   You are trying to cache a Ruby object which cannot be serialized to memcached.
  
   /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.6.4/lib/dalli/server.rb:397:in `dump'
      /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.6.4/lib/dalli/server.rb:397:in `serialize'
      /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.6.4/lib/dalli/server.rb:269:in `set'
      /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.6.4/lib/dalli/server.rb:60:in `request'
      /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.6.4/lib/dalli/options.rb:18:in `block in request'
      /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
      /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.6.4/lib/dalli/options.rb:17:in `request'
      /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.6.4/lib/dalli/client.rb:348:in `perform'
      /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.6.4/lib/dalli/client.rb:199:in `set'
      (eval):7:in `block in set_with_newrelic_trace'
      ...
  </code></pre>
  
  <p>Here's the place where the cache retrieval is being defined:</p>
  
  <pre><code>require 'httparty'
  
  module Myclassname
    class Footer
      include HTTParty
      format :json
      attr_accessor :response
  
      def initialize
        @response = Rails.cache.fetch("remote_footer_information", :expires_in =&gt; 5.minutes) do
          begin
            self.class.get("http://www.myappname.net/pages/my_footer.json")
          rescue
            false
          end
        end
      end
  
      def valid?
        unless @response == false || @response.blank?
          return @response['footer'] != nil
        end
  
        false
      end
  
      def footer
        unless @response == false || @response.blank?
          return @response['footer']
        end
  
        nil
      end
  
    end
  end
  </code></pre>
  
  <p>And here's the place in the view where this is being called.</p>
  
  <pre><code>&lt;%= yield :footer_legend %&gt;
  
  &lt;div class="clearer"&gt;&lt;/div&gt;
  &lt;div class="divider"&gt;
  &lt;/div&gt;
  
  &lt;% response = Myclassname::Footer.new %&gt;
  &lt;% if response &amp;&amp; response.valid? %&gt;
      &lt;%= response.footer.html_safe %&gt;
  &lt;% end %&gt;
  </code></pre>
  
  <p>What am I doing wrong here? Any ideas would be greatly appreciated. Thanks!</p>