2011-01-30 54 views
0

我试图做一些TDD,当我实现这个方法时,它说self.state是一个未定义的方法。Ruby on Rails3:为什么这个字段没有定义?

def init 
    self.state = Array.new(NUM_SQUARES) if not self.state 
    . 
    . 

,但在架构它表明:

create_table "boards", :force => true do |t| 
    t.string "state" 
    t.integer "turn" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
end 

我的方法启动错误:

def setup 
    @board = Board.new 
    @board.save 
    @board.init 
end 
+0

在这种情况下自我是什么? self.state =方法在哪里被调用? – 2011-01-30 21:39:31

+0

哦,从初始..更新后 – NullVoxPopuli 2011-01-30 21:40:47

回答

0

或许,如果你@board.init之前@board.saveBoard#init修改它,但它不会被保存,这可能是你的问题。因此,#setup应该是这个样子:

def setup 
     @board = Board.new 
     @board.init 
     @board.save 
end 

有一些其他原因,你#save#init过吗?