分数中的NoMethodError #index

时间:2016-08-04 02:27:08

标签: javascript ruby-on-rails ruby nomethoderror

在我的游戏中,用户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); 

2 个答案:

答案 0 :(得分:0)

问题是:

您的应用中没有为@score变量设置值,而您正在使用+运算符。

<强>溶液

先设置@score = 0,然后尝试。

答案 1 :(得分:0)

  

未定义的方法&#39; +&#39;为零:NilClass

您正尝试将1添加为nil,这就是您收到此错误的原因

使用increment方法

country

增加它

contact