Cache only the main content in rails

前端 未结 2 860
旧巷少年郎
旧巷少年郎 2021-01-29 01:36

Using Rails 3.1.1 and Heroku.

I believe this should be a fairly easy fix but I cannot find (and easily verify) how to do this. I have a very slow controller (6 sec)

2条回答
  •  轮回少年
    2021-01-29 01:56

    You can achieve this with fragment caching like below:

    def show
    
      if !fragment_exist?("main_content")
        @products = Product.all
        @users_count = User.count
      end
    
      @random_products = Product.order("RANDOM()").limit(10)
    
    end
    

    show.html.erb

    
    <% cache("main_content") do %>
        <%= @users_count %>
        <% @products.each do |product| %>
            <%= product.name %>
        <% end %>
    <% end %>
    
    
    <% @random_products.each do %>
        <%= product.name %>  
    <% end %>
    

提交回复
热议问题