2012-05-06 4 views
0

私はRuby-On-Railsで小さなアプリケーションを開発しています。ゼロのために未定義の方法 `+」(Heroku RoRアプリケーションで未定義のメソッド「+」

NoMethodError:

@user = User.find(current_user.id) 
@user.number = current_user.number + 1 
@user.save! 

それがローカルに問題なく実行されますが、それは次のエラーで、2行目でHerokuの上にクラッシュ:コントローラにIは、コードのこの部分を持っています:NilClass)

問題解決のヒントを教えてください。

答えて

3

あなたは0

にデフォルトの状態を設定し、新たな移行を作成して、数の列を再生成する必要があり、データベースに属性として番号を記憶している場合。

def change 
    remove_colum :users, :number 
    add_column users, :number, :integer, :default => 0 

    #ensure that all users with number == nil have got 0 instead nil 
    User.where(:number => nil).update_all(:number => 0) 
end 
+0

をこれはおそらく、CurrentUserにクラスのために行われるべき?私は混乱している – Kashyap

+0

通常、current_userは認証からのヘルパーであり、そこにあるユーザーインスタンスです。 current_user.classを呼び出してUserクラスを取得してください。 – Suborx

1

あなたもこれを行うことができます:

@user.number = current_user ? current_user.to_i : 0 
@user.save! 
関連する問題