レビューには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>