我正在使用 Raty 进行评论。我想在循环中显示每个产品的平均分数。
如果我只使用<%= product.average_user %>
,那么每个产品都会显示正确的平均数/评分。如果我将字段连接id
到嵌入式脚本以获取星星,那么第一个对象只有 5 个空星,其他对象则为零。这个相同的脚本在我的产品视图中确实有效。
这是我的视图代码,没有script
:
<div class="row">
<br/>
<%= will_paginate @products %>
<% @products.each do |product| %>
<%= link_to product do %>
<div class="col s6 m4 l2">
<div class="card" style="height: 50px">
<div class="row">
<div class="col s4 m4 l4">
<% if !product.external_image.nil? %>
<div class="card-image waves-effect waves-block waves-light valign-wrapper">
<%= image_tag product.external_image, class: "valign" %>
</div>
<% else %>
<div class="card-image waves-effect waves-block waves-light valign-wrapper">
<%= image_tag product.image, class: "responsive-img" %>
</div>
<% end %>
</div>
<div class="col s8 m8 l8">
<div class="grey-text text-darken-4 truncate valign" style="height: 25px">
<%= product.name %>
</div>
<div class="divider"></div>
<span style="height: 25px">
<%= product.average_rating %>
</span>
</div>
</div>
</div>
</div>
<% end %>
<% end %>
<%= will_paginate @products %>
这是我的视图代码script
:
<div class="row">
<br/>
<%= will_paginate @products %>
<% @products.each do |product| %>
<%= link_to product do %>
<div class="col s6 m4 l2">
<div class="card" style="height: 50px">
<div class="row">
<div class="col s4 m4 l4">
<% if !product.external_image.nil? %>
<div class="card-image waves-effect waves-block waves-light valign-wrapper">
<%= image_tag product.external_image, class: "valign" %>
</div>
<% else %>
<div class="card-image waves-effect waves-block waves-light valign-wrapper">
<%= image_tag product.image, class: "responsive-img" %>
</div>
<% end %>
</div>
<div class="col s8 m8 l8">
<div class="grey-text text-darken-4 truncate valign" style="height: 25px">
<%= product.name %>
</div>
<div class="divider"></div>
<span id="average_rating" style="height: 25px">
</span>
</div>
</div>
</div>
</div>
<script>
$('#average_rating').raty({
path: '/assets',
readOnly: true,
score: <%= product.average_rating %>
});
</script>
<% end %>
<% end %>
<%= will_paginate @products %>
关于我在这里做错了什么以及如何解决它的任何想法?
解决方案:
@user2856118 为我的回答提供了基础。我只需要稍微调整一下(与下面的调整答案进行比较)。这是我的工作代码:
跨度:
<span id="average_rating_<%= product.id %>" style="height: 25px"></span>
脚本:
<script>
$('#average_rating_<%= product.id %>').raty({
path: '/assets',
readOnly: true,
score: <%= product.average_rating %>
});
</script>