Three common forms of caching
There are 3 types of caching that are very commonly talked about in the rails community;
page caching,
action caching, and
fragment caching. All of these are well documented and are great ways to cache varying amounts of content for your pages.
Is that all the caching I need?
Caching at the view level is great but it isn't necessarily the best fit for every situation. In some cases it may be easier to cache data at a lower level. Perhaps you want to cache the results of an external data request for a given period of time. None of the view caching methods would be a really great fit.
Lower level data caching
Rails 3 actually has a great method for caching data at a lower level than the view. It even uses the same caching store as action and fragment caching.
ActiveSupport::Cache::Store allows you to store any serializable Ruby object. Rails even provides an already initialized cache store via Rails.cache.
Example usage and code
I used this on
www.checkthesock.com to cache METAR queries. I was using
current_metar a gem I built that pulls metar data from
ADDS. I made a model called CachedMetar to return cached results to the rest of my application.
Code walk through
This model basically returns the result of the block argument to
Rails.cache.fetch
the first time it is called. Any time it is called within the next 5 minutes it returns the value that was cached the first time. Everywhere I had previously been calling
CurrentMetar::Metar.get_metar("ICAO code")
I switched to call
CachedMetar.metar("ICAO code")
and that was all it took.
Testing
Testing is actually surprisingly easy. I used shoulda and mocha and here is what I ended up with.
Reference
16 comments:
Just to make a note: This feature has been documented and available in Rails (specifically, ActiveSupport) since version 2.1.0.
Thanks for sharing. It is a worthwhile read for any app developer melbourne.
Nice information. Thank you for the explanation. It makes caching more understandable to us lay people.
James Daugherty
Nice information. Thank you for the explanation.
cheap web hosting india
digital marketing Brisbane
Amazing blog. I also recommend you to have a look at this page to know how to spy whatsapp messages.
This is such a great resource that you are providing and you give it away for free. I love seeing websites that understand the value of providing a quality resource for free. It is the old thing going around comes around routine. https://meinehaarklinik.de/
Nice information. Thank you for the explanation.
winter internship for ece students
electrical companies in hyderabad for internship
internship in indore for computer science students
free internship in chennai chennai, tamil nadu
free internship in chennai chennai, tamil nadu
internship for electrical engineering students in bangalore
internship in automobile industry
internship in chennai for mca
free ethical hacking course in chennai
paid internship in pune for computer engineering students
cannot set headers after they are sent to the client
select * into sql server
number pattern program in python using while loop
which of the following numbers must be added to 5678 to give a reminder 35 when divided by 460?
riya sold her car for 50000
flipkart hack mod apk download
c program to print vowels in a string
the given signs signify something
two dimensional array in javascript w3schools
how to hack wifi using ubuntu
تنظيف منازل بالدمام شركة تنظيف
تنظيف منازل بالاحساء شركة تنظيف منازل بالاحساء
تنظيف منازل بمكة شركة تنظيف منازل بمكة
تنظيف منازل بجدة شركة تنظيف منازل بجدة
تنظيف منازل بالمدينة المنورة شركة تنظيف المنازل بالمدينة المنورة
Some truly wonderful work on behalf of the owner of this internet site , perfectly great articles thansk a lot
Ai & Artificial Intelligence Course in Chennai
PHP Training in Chennai
Ethical Hacking Course in Chennai Blue Prism Training in Chennai
UiPath Training in Chennai
Great Post
Data Science Institutes In Hyderabad
Informative post. Glad to find yo ur blog. Thanks for sharing.data science course in Hyderabad
I've read this post and if I could I desire to suggest you some interesting things or suggestions. Perhaps you could write next articles referring to this article. I want to read more things about it!
data science course in Hyderabad
This is a great motivational article. In fact, I am happy with your good work. They publish very supportive data, really. Continue. Continue blogging. Hope you explore your next post
data scientist certification
I needed to leave a little remark to help you and wish you a decent continuation. Wishing you good luck for all your contributing to a blog endeavors.
data scientist training
As always your articles do inspire me. Every single detail you have posted was great.
data science certification in noida
Post a Comment