0

私は評価システムを備えた Ruby on Rails アプリケーションに取り組んでいます。評価は今のところ問題なく機能しています。私もそれをajax化しましたが、動作します。また、すべての評価の平均値に対応する長さのバーに、現在の評価平均を表示したいと考えました。

バーの長さは次のように設定されています

var average = parseFloat( $(".rating_filled").attr("data-average") );

var avg_width = (average/5)*200;


$(".rating_filled").css("width", avg_width);

値は次のようにhtmlで渡されています

    <div class="rating_bar">
        <div class="rating_filled" data-average="<%=@game.ratings.average(:value) %>"></div>
    </div>

ajax を介して、このバーとその他の統計を含む完全なパーシャルをリロードします。バー以外のすべてがリロードされます。評価を送信すると、現在の平均値が表示されますが、バーが完全に消えます。Firebug は、バー自体が最近送信された値を受け取ることを示したので、これは正常に機能しますが、グラフィカル部分が欠落しています。

したがって、javaScript ファイル (グラフィカルな長さが定義されている場所) が ajax を介して再ロードされないため、バーがまったく表示されないためだと思います。

jQueryコマンドを最新の状態にカスタマイズする必要があるのか​​ 、Json経由で何かを渡してコントローラーで何かをする必要があるのか​​ わかりません。

わかりません、手伝ってくれませんか?どうもありがとう!

4

1 に答える 1

0

これは私のパーシャルがどのように見えるかです

<div class="rating_stats">
<div>
    Durchschnittswert:
    <span class="rating_avg">
    <% if !@game.average_rating.present? %>
        unbewertet
    <% else %>
        <%= @game.ratings.average(:value).round(2) %>
    <% end %>
    </span>
    <div class="rating_bar">
        <div class="rating_filled" data-average="<%= @game.ratings.average(:value) %>"></div>
    </div>
</div>

<div>
    Anzahl Wertungen: 
    <span class="rating_amount"><%= @game.ratings.count %></span>
</div>

<% if user_signed_in? %>
<p>
    Ihre Wertung :
    <span class="current_user_rating">

        <%= current_user_rating %>

    </span>
</p>
<% end %>

于 2013-05-24T17:57:18.840 に答える