You are right.. changing it to the following throws a nasty syntax error.
<%= Rails.cache.fetch "all_catgory" do %> <!-- generate html for categories --> <% end %> If I do <% cache(:key => 'all_category') do %> <!-- generate html for categories --> <%end%> The it does work, BUT..somehow the page url is prepended to the cache key so essentially this fragment which is same across the app, misses for every new page load. [DEBUG 17-09-2010 12:06:37] Cached fragment hit: views/localhost/ categories/autos-motorcyles/vote_topics?key=all_category (0.4ms) [DEBUG 17-09-2010 12:06:37] Category Load (0.2ms) SELECT * FROM `categories` ORDER BY name ASC [DEBUG 17-09-2010 12:06:37] Cached fragment miss: views/localhost/ categories/autos-motorcyles/vote_topics?key=all_category (0.4ms) [DEBUG 17-09-2010 12:06:37] Rendered shared/_cat_nav_list (8.9ms) [DEBUG 17-09-2010 12:06:37] Cached fragment hit: views/localhost/ categories/autos-motorcyles/vote_topics?key=all_cities (0.3ms) [DEBUG 17-09-2010 12:06:37] User Load (0.1ms) SELECT distinct city FROM `users` [DEBUG 17-09-2010 12:06:37] Cached fragment miss: views/localhost/ categories/autos-motorcyles/vote_topics?key=all_cities (0.4ms) [DEBUG 17-09-2010 12:06:37] Rendered shared/_city_nav_list (4.7ms) Can someone please help! On Sep 16, 4:07 pm, Frederick Cheung <[email protected]> wrote: > On Sep 16, 6:32 pm, badnaam <[email protected]> wrote: > > > > > I am using memcached.. and have the folllowing in my partial. > > > <%CACHE.fetch 'all_categories' do %> > > <ul> > > Category.all.each do |c| > > <li><%= c.name %> </li> > > end > > </ul> > > <%end %> > > > When I check in the irb console the "all_categories" key does get > > populated. > > So..CACHE.fetch 'all_categories' in irb does output the expected html > > list. > > > But nothing gets outputted in my view. > > > I am guessing this is some sort of syntax error, what am I doing wrong? > > In the case where the data is already in the cache the block is not > yielded to, so nothing will be output. You could try changing it to a < > %= but I'm not sure that mixes well with yielding to a block or the > case when it is generated fresh data. Why not use cache_fragment ? > > Fred -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

