Ruby on Rails と Raty.js を使用して、ピンの評価システムを作成しました。各ピンの個々のショー ページで平均評価を確認できます。それをインデックスファイルに組み込みたいと思います。現在、インデックス内のすべてのピンに表示されている評価は、最初のピンの平均評価です。
注: インデックス ファイルに Haml を使用していますが、基本的な html で回答を提供できれば問題ありません。
index.html.haml:
.panel-footer
.btn-group.pull-left
%div{class: "srating", dscore: @avg_review }
:javascript
$('.srating').raty({
path: '/assets/',
readOnly: true,
score: function() {
return $(this).attr('dscore');
}
});
pins_controller.rb:
class PinsController < ApplicationController
before_action :find_pin, only: [:show, :edit, :update, :destroy, :upvote, :un_upvote]
before_action :authenticate_user!, except: [:index, :show]
def index
@pins = Pin.all.order("created_at DESC").paginate(page: params[:page], per_page: 7)
for singlepin in @pins
@stars_reviews = StarsReview.where(pin_id: singlepin.id)
if @stars_reviews.blank?
@avg_review = 0
else
@avg_review = @stars_reviews.average(:rating).round(2)
end
end
end