当我在本地运行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
答案 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 %>