Heroku RoR应用程序上的未定义方法`+'

时间:2012-05-06 15:13:47

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 heroku

我正在Ruby-On-Rails中开发一个小应用程序。在控制器中我有这段代码:

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

虽然它本地运行没有问题,但它在第二行的Heroku上崩溃,出现以下错误:

NoMethodError(未定义的方法`+'代表nil:NilClass)

有关如何解决问题的任何提示?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

您也可以这样做:

@user.number = current_user ? current_user.to_i : 0
@user.save!