在我的游戏中,用户has_one
得分和得分belongs_to
用户。当用户正在玩游戏时,我希望该用户的得分每秒可见地增加1,然后保存,以便在排行榜上可以看到用户的得分。我已经找到了使用JavaScript变量执行此操作的代码,但是当我使用ruby对象尝试它时,我收到一条错误消息:
undefined method '+' for nil:NilClass
控制器:
class ScoresController < ApplicationController
before_action :require_user, only: [:index]
def index
@score = current_user.score
@users = User.all
end
end
查看:
<div class="score-outline"> Score:<div id="score">0</div></div>
使用Javascript:
window.setInterval(
function countscore() {
if($('#game-area').is(':animated')){
<%= @score += 1 %>
document.getElementById("score").innerHTML = <%= @score %>
}
}, 1000);
答案 0 :(得分:0)
问题是:
您的应用中没有为@score
变量设置值,而您正在使用+运算符。
<强>溶液强>
先设置@score = 0
,然后尝试。
答案 1 :(得分:0)