Ruby on Rails3:为什么这个字段没有定义?

时间:2011-01-30 21:37:16

标签: ruby-on-rails ruby ruby-on-rails-3

我正在尝试做一些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 :(得分:0)

也许您@board.init之前@board.saveBoard#init修改了它,但它没有得到保存,这可能是你的问题。因此,#setup应该看起来像这样:

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

在您#save之前#init还有其他原因吗?