2011-01-30 49 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過嗎?