控制台增加一个整数工作,但调用相同的函数“未定义的方法+为零类”

时间:2013-01-29 18:47:37

标签: ruby-on-rails rails-activerecord

代码:

#schema..
  t.integer  "shares",             :default => 0
end

#model

def increment_shares
  shares = shares + 1 #undefined method + for nil class
  save
end

#console

  irb(main):003:0> t.shares
  => 0

  irb(main):004:0> t.shares = t.shares + 1
  => 1

  irb(main):005:0> t.increment_shares
  NoMethodError: undefined method `+' for nil:NilClass

(问题应该从代码中清楚。编写更多文本以满足'质量标准')

1 个答案:

答案 0 :(得分:2)

您应该使用self来访问模型的属性:

def increment_shares
  self.shares = self.shares + 1 
  self.save
end