gpt4 book ai didi

ruby-on-rails - 如何判断缓存是否正常工作。 rails 4

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:36 26 4
gpt4 key购买 nike

我正在阅读“使用 Rails 4 进行敏捷 Web 开发”指南,并来到了有关缓存的部分。以下是要遵循的步骤:

  1. 在 config/environments/development.rb 中

    config.action_controller.perform_caching = true
  2. 在 app/models/product.rb 中

    def self.latest
    Product.order(:updated_at).last
    end
  3. 在 views/store/index.html.erb 中

    <% cache ['store', Product.latest] do %>
    <% @products.each do |product| %>
    <% cache ['entry', product] do %>
    <div class="entry">
    <%= image_tag(product.image_url) %>
    <h3><%= product.title %></h3>
    <%= sanitize(product.description) %>
    <div class="price_line">
    <span class="price"><%= number_to_currency(product.price) %></span>
    </div>
    </div>
    <% end %>
    <% end %>
    <% end %>

为了验证现金是否有效,该书说:“就验证它是否有效而言,不幸的是,没有太多可看的东西。如果你去那个页面,你应该看不到任何变化,这实际上是点!你能做的最好的事情是在缓存 block 内的任何地方更改模板而不更新任何产品并验证你没有看到该更新,因为页面的缓存版本尚未更新“。

但是,当我尝试在缓存 block 内的代码中添加“Hello”字符串时,它出现在页面上。我已经完成了所有服务器的重新启动,但没有。

但是,当我在本地主机上重新加载页面时,我确实看到了这一行

    Cache digest for app/views/store/index.html.erb: 6c620ede1d4e824439a7b0e3b177620f

当我有时,这不是他们的 config.action_controller.perform_caching = false

链接到 git hub 存储库:https://github.com/BrianLobdell/depot

谢谢,布莱恩

最佳答案

Rails 在更改文件时更新缓存,因此操作缓存更容易。

您可以使用 Rails 控制台中页面的缓存摘要检索缓存片段(摘要可能已更改,请确保使用最新的摘要!):

key = ['store', Product.latest, '6c620ede1d4e824439a7b0e3b177620f']
ActionController::Base.new.read_fragment(key)

这应该返回缓存的片段。为确保 Ruby 在提供页面时真正命中缓存,您可以将片段替换为其他内容:

ActionController::Base.new.write_fragment(key, 'it works!')

重新加载页面,您应该看到“它有效!”

关于ruby-on-rails - 如何判断缓存是否正常工作。 rails 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24067880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com