• Rails中的缓存


    最近学习Rails。

    看到如下代码:

    复制代码
    <% if notice %>
    <p id="notice"><%= notice %></p>
    <% end %>
    
    <h1>Your Pragmatic Catalog</h1>
    
    <!-- START_HIGHLIGHT -->
    <% cache ['store', Product.latest] do %>
    <!-- END_HIGHLIGHT -->
      <% @products.each do |product| %>
    <!-- START_HIGHLIGHT -->
        <% cache ['entry', product] do %>
    <!-- END_HIGHLIGHT -->
          <div class="entry">
            <%= image_tag(product.image_url) %>
            <h3><%= product.title %></h3>
            <%= sanitize(product.description) %>
            <div class="price_line">
        <!-- START:currency -->
              <span class="price"><%= number_to_currency(product.price) %></span>
        <!-- END:currency -->
            </div>
          </div>
    <!-- START_HIGHLIGHT -->
        <% end %>
    <!-- END_HIGHLIGHT -->
      <% end %>
    <!-- START_HIGHLIGHT -->
    <% end %>
    <!-- END_HIGHLIGHT -->
    复制代码

    对其中<% cache ['store', Product.latest] do %>不是很明白。研究后有如下发现:

    1、配置

      配置 : /config/environments/development.rb

      config.action_controller.perform_caching = true #开发环境下启动缓存

    2、定义

      File : lib/ruby/gems/2.0.0/gems/actionpack-4.0.3/lib/action_view/helpers/cache_helper.rb

      Module : ActionView::Helpers::CacheHelper

      Type: Instance Public methods

    3、应用

         When using this method, you list the cache dependency as the name of the cache, like so:

        <% cache project do %>
            <b>All the topics on this project</b>
            <%= render project.topics %>
        <% end %>

    views/projects/123-20120806214154/7a1156131a6928cb0026877f8b749ac9

       ^class   ^id  ^updated_at    ^template tree digest

         If your template cache depends on multiple sources (try to avoid this to keep things simple),

         you can name all these dependencies as part of an array:

        <% cache [ project, current_user ] do %>
            <b>All the topics on this project</b>
            <%= render project.topics %>
        <% end %>
  • 相关阅读:
    [leetCode]100.相同的树
    [leetCode]88.合并两个有序数组
    [leetCode]83.删除排序链表中的重复元素
    排序算法总结
    [leetCode]69. x 的平方根
    POJ 1151 Atlantis
    POJ 3468 A Simple Problem with Integers
    SGU 271 Book Pile
    POJ 2970 The lazy programmer
    FZU 2254 英语考试
  • 原文地址:https://www.cnblogs.com/shineqiujuan/p/4711695.html
Copyright © 2020-2023  润新知