Ajaxified Average-Rating Bar不会在Rails中重新加载

时间:2013-05-23 12:56:55

标签: javascript ruby-on-rails ruby ajax rating

我正在使用评级系统开发Ruby on Rails应用程序。到目前为止,评级工作正常。我也把它弄糊涂了它的确有效。我还想在条形图中显示当前的评级平均值,其长度对应于所有评级的平均值。

栏的长度设置如下

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我重新加载包含此栏和其他Stats的完整Partial。除了酒吧,一切都重新加载。一旦我提交评级,我就会获得当前的平均值,但该栏会完全消失。 Firebug表示条形本身接收最近提交的值,因此这样可以正常工作,但缺少图形部分。

所以我猜它是因为javaScript文件(定义了图形长度)没有通过ajax重新加载,因此导致根本没有显示栏。

我不知道我是否只需要自定义我的jQuery命令以使其保持最新状态,甚至在我的控制器中执行某些操作,并通过Json传递这些内容。

我不知道,你们能帮助我吗? 非常感谢!

1 个答案:

答案 0 :(得分: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 %>