产品索引视图上重复的产品

时间:2016-06-08 21:15:32

标签: ruby-on-rails heroku

当我在本地运行rails服务器时,我的所有4个产品都正确显示(请参见屏幕截图:Products index on local server),但是当我在Heroku中打开我的网站时,一个产品在4个产品中不断重复斑点。我试图预编译我的资产,但似乎没有做任何事情。

我也有config.serve_static_files = true和config.assets.compile = true 在我的production.rb文件中。

这是我的index.html.erb文件,这是Heroku上的网站:https://dedesign.herokuapp.com/products

git clone https://github.com/yaroslavvb/tensorflow.git
cd tensorflow
git checkout macbook

git remote add tfmain https://github.com/tensorflow/tensorflow.git
git fetch -a 

git rebase --onto tfmain/master

fatal: Needed a single revision
Does not point to a valid commit: tfmain/master

1 个答案:

答案 0 :(得分:0)

我确定您的缓存存在问题。一种解决方法是

<% @products.each do |product| %>
  <div class="col-sm-2 col-md-4">
    <% cache(cache_key_for_products, product) do %>
      <%= render partial: "product", locals: {product: product} %>
    <% end %>
  </div><!-- col div -->
<% end %>

在这里,我假设cache_key_for_products是你的帮助器中定义的方法或类似的东西。我想这应该可以解决问题,但如果没有,请告诉我。

<强>更新

我假设cache_key_for_products正在返回一种AR :: Collection / Record。

但是,在您的情况下,我认为更好的方法是:

<% cache(@products) do %>
  <% @products.each do |product| %>
    <div class="col-sm-2 col-md-4">
      <% cache(product) do %>
        <%= render partial: "product", locals: {product: product} %>
      <% end %>
    </div><!-- col div -->
  <% end %>
<% end %>

或另一种方法是:

  <% @products.each do |product| %>
    <div class="col-sm-2 col-md-4">
      <% cache [@products, product] do %>
        <%= render partial: "product", locals: {product: product} %>
      <% end %>
    </div><!-- col div -->
  <% end %>