Russian doll caching in rails

家住魔仙堡 提交于 2019-12-24 10:45:05

问题


I've heard DHH and the other great 37Signal guys talk a lot about Russian Doll Caching and I understand the concept of it, but I don't really know how to apply it to my code.

How would you apply it?

NEW EDIT: How would you apply the gem to a piece of code with a lot of if statements?

    <% if signed_in? %>
      <div class="timeline">
        <%= link_to image_tag(current_user.avatar), designer_path(current_user), :class => "avatar topimg" %>
        <%= content_tag(:span, "your profile", :class => "description") %>
        <%= link_to "", new_design_path, :class => "upload icon-upload" %>
        <%= content_tag(:span, "upload a new design", :class => "description") %>
        <%= link_to "", designer_path(current_user)+"/favorites", :class => "upload icon-star" unless current_user.followees_by_type("design").blank? %>
        <%= content_tag(:span, "designs you've favorited", :class => "description") unless current_user.followees_by_type("design").blank? %>
        <%= content_tag(:span, current_user.current_invites, :class => "invites_count") unless current_user.current_invites <= 0 || current_user.full_member == false %>
        <%= link_to "", "#", :class => "invite icon-plus "+("blue" unless current_user.current_invites == 0).to_s unless current_user.current_invites < 0 || current_user.full_member == false  %>
        <%= content_tag(:span, "invite a friend ("+current_user.current_invites.to_s+" invites left)", :class => "description") unless current_user.current_invites < 0  %>
        <%= content_tag(:span, activity, :class => "activity_count") unless activity == 0 %>
        <%= link_to "", designer_path(current_user)+"/statistics", :class => "upload icon-activity "+("blue" unless activity == 0).to_s unless activity == 0 %>
        <%= content_tag(:span, ("your activity ("+pluralize(activity, 'new thing')+")"), :class => "description") unless activity == 0%>
      </div>
    <% else %>
      <%= link_to raw('<i class="icon-twitter icon-font"></i><span>login with twitter</span>'), "/auth/twitter", :class => "btn btn-twitter grey-tweet" %>
    <% end %>

回答1:


Check out the Gem that they released, it has some decent documentation.




回答2:


He also expains it (and a few other things from Basecamp source code) in this video:

http://www.youtube.com/watch?v=FkLVl3gpJP4#t=33m38s



来源:https://stackoverflow.com/questions/12153721/russian-doll-caching-in-rails

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!