星级rails 4 jquery ajax javascript raty
我正试图遵循本教程,但我被卡住了: 我是一个精通javascript和ajax的乞丐,所以我花了几个小时学习ajax如何使用javascript。我相信这个问题与星级rails 4 jquery ajax javascript raty,javascript,jquery,ruby-on-rails,ajax,raty,Javascript,Jquery,Ruby On Rails,Ajax,Raty,我正试图遵循本教程,但我被卡住了: 我是一个精通javascript和ajax的乞丐,所以我花了几个小时学习ajax如何使用javascript。我相信这个问题与平均评分方法的位置有关(rails问题?) 目前,我已经完全遵循了教程的内容,同时用评论代替评论。在教程中,它说要在评论模型中定义平均_评级(我的在评论模型中),我不知道为什么要这样做 此外,我还添加了以下内容(不确定它是否属于当前控制器或评级控制器): 当我尝试加载页面时,这里是我得到的错误:ZeroDivisionError下面是除
平均评分方法的位置有关(rails问题?)
目前,我已经完全遵循了教程的内容,同时用评论代替评论。在教程中,它说要在评论模型中定义平均_评级(我的在评论模型中),我不知道为什么要这样做
此外,我还添加了以下内容(不确定它是否属于当前控制器或评级控制器):
当我尝试加载页面时,这里是我得到的错误:ZeroDivisionError
下面是除以0
,并突出显示这一行分数:,
更新当我从具有平均_评级的视图中删除此脚本时,星星将显示我的_评级。所以,平均部分出了问题:
<script> #did not delete this line
$('#star').raty({
readOnly: true,
score: <%= @review.average_rating %>,
path: '/assets'
});
#未删除此行
$('星').raty({
只读:对,
分数:,
路径:'/assets'
});
已删除部分^^ ^基本上,我希望获得更多信息,但以下是一些可能有帮助的提示:
- 确保关系正常运行:确保您对用户/评论有
多个:评分
,对评分有“归属于:用户/:评论”。其他方向-您是否通过控制器方法获得评级?如果是这样,考虑把它改为@评级。
- 使用first\u或\u XXXX-这是保存条件实例化的一个很好的rails选项。有一种方法正是你所做的:
Rating.where(review_id:@review.id,user_id:@current_user.id)。首先创建do|Rating|
评分:0分
结束
- 最后,ratings.size在创建后不会更新,这可能解释了零除法。阅读更多信息。因此,建议使用count(将检查数据库,因此仅统计保存的评级)或length(即user/review.ratings.length),后者也将统计生成(未保存)对象
希望有帮助。评分。大小可能为0?可能在平均评分中使用一个条件,以解释评分不足的原因?您能解释更多吗?我不确定您的意思。我在评分模型中从rails控制台手动输入了两个评分,两个评分都有不同的值。您收到的评分为零DivisionError
,它看起来像是评级。size
在某种程度上是0,即使您已经手动添加了两个评级。为什么不尝试将评级。size
替换为1
,然后查看?或者注释掉该行并执行评级。检查?如果我将ratings.size替换为1,则页面加载时没有星星(我的视图中有javascript)。如果我注释掉行并键入ratings.inspect,那么它将再次加载页面,视图中没有星星
#this is the controller used for the view which displays the stars
def page
@rating = Rating.where(review_id: @review.id, user_id: @current_user.id).first
unless @rating
@rating = Rating.create(review_id: @review.id, user_id: @current_user.id, score: 0)
end
end
<script> #did not delete this line
$('#star').raty({
readOnly: true,
score: <%= @review.average_rating %>,
path: '/assets'
});