2011-01-30 15 views
0

私はいくつかのTDDをしようとしています。このメソッドを実装すると、self.stateは未定義のメソッドであると言います。Ruby on Rails3:なぜこのフィールドは定義されていませんか?

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

が、スキーマには示しています

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

この文脈で自己は何ですか? self.state =メソッドはどこに呼び出されていますか? –

+0

oh、initから更新ポスト – NullVoxPopuli

+0

とそれはボードモデルです。 – NullVoxPopuli

答えて

0

おそらく、あなた@board.save前にあなた@board.init場合:エラーを開始

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

は私の方法。 Board#initはそれを変更しますが、保存されず、それが問題の可能性があります。したがって、#setupはこのようなものになります。

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

をあなた#init前に、あなたは#save他のいくつかの理由がありますか?

+0

それが判明したので、私はrake db:test:prepareを忘れてしまった。ありがとう。 = \ – NullVoxPopuli

関連する問題