I’m having problems trying to use Memcached in a Rails 3 Application …
My question is quite simple : How I’m supposed to configure Memcached to make it works with Rails 3 ?
Thanks for your help !
Edit:
It looks like the object isn’t correctly deserialized by the Rails.cache.read no matter :raw => true or :raw => false but the deserialization is working if it’s done just after the Rails.cache.write
Ok so,
Complete context :
The serialized object had his Class into a Lib files. The lib files are auto loaded by rails using using the standard naming convention.
The
Rails.cache.readwas the first step of any actions in my application (except the init action which creates the object for the first time).So, i had an error on any other action :
undefined method for String. This was because theRails.cache.readwas returning me a String (serialized object) instead of my object instance.Explanation :
It looks like Marshal doesn’t use the Rails system to find Undeclared constants. So, when i was calling
Rails.cache.readtheMarshal.loadwas falling andreadwas returning theStringwithout throwing any error.The Solution :
I simply added a
loadof my lib in my application controller. That way, all the constants are already loaded whenRails.cache.readcallsMarshal.loadNote that i used
loadinstead ofrequirein development mode to avoid to have to restart my server after each modification.Hopefully this will help someone.