Rails 3中未定义的add_column

时间:2011-11-26 01:52:31

标签: ruby-on-rails ruby rails-migrations

我正在尝试在Rails 3中运行迁移,我希望在表中添加一列,代码如下所示:

class AddConstAdr < ActiveRecord::Migration
  def change
    change_table: constants do |t|
      t.add_column :home_address, :string
    end
  end
end

当我rake db:migrate时,我收到一条错误,指出未定义的方法'add_column'。我很困惑为什么会这样,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:11)

您似乎混合了两种不同的迁移方式。你可能想要这个:

def change
  change_table :constants do |t|
    t.string :home_address
  end
end

或者这个:

def change
  add_column :constants, :home_address, :string
end

两个表单都应该做同样的事情:在home_address表中添加constants字符串列。

我还假设你的change_table: constants只是一个应该是change_table :constants的拼写错误。

可在Migrations Guide

中找到更多信息

答案 1 :(得分:2)

您应该执行以下操作:

def change
  add_column :constants, :home_address, :string
end