zoukankan      html  css  js  c++  java
  • 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 %>
  • 相关阅读:
    字符设备驱动程序
    内存管理
    在React中使用context来传递属性
    iTerm2保存登录密码
    Mac OS设置终端 autocomplete 大小写不敏感
    Linux下安装Google SDK 配置Google API翻译环境
    使用Shell远程给Linux安装JDK
    Linux下wget命令 指定下载文件路径
    linux下解压/压缩命令
    获取鼠标在屏幕上的位置
  • 原文地址:https://www.cnblogs.com/shineqiujuan/p/4711695.html
Copyright © 2011-2022 走看看