Ruby on Rails3: почему это поле не определено? - PullRequest
0 голосов
/ 31 января 2011

Я пытаюсь создать TDD, и когда я реализую этот метод, он говорит, что self.state - это неопределенный метод.

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

1 Ответ

0 голосов
/ 31 января 2011

Возможно, если вы @board.init перед вами @board.save. Board#init изменяет его, но оно не сохраняется, и это может быть вашей проблемой. Таким образом, #setup должен выглядеть примерно так:

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

Есть ли какая-то другая причина, по которой вы #save до вас #init?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...