我正在使用评级系统开发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传递这些内容。
我不知道,你们能帮助我吗? 非常感谢!
答案 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 %>