0

私はRuby-On-Railsで小さなアプリケーションを開発しています。コントローラーには、次のコードがあります。

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

ローカルでは問題なく実行されますが、2行目でHerokuでクラッシュし、次のエラーが発生します。

NoMethodError(nil:NilClassの未定義のメソッド `+')

問題を解決するためのヒントはありますか?

4

2 に答える 2

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
于 2012-05-06T15:16:52.950 に答える
1

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

@user.number = current_user ? current_user.to_i : 0
@user.save!
于 2012-05-06T15:47:20.393 に答える