ruby-on-rails - Rails 3 中未定义的 add_column

标签 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”。我很困惑为什么会这样,有人可以帮忙吗?

最佳答案

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

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 中找到.

关于ruby-on-rails - Rails 3 中未定义的 add_column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8275721/

相关文章:

ruby-on-rails - 如何创建自引用关联表 rails migration

ruby-on-rails - Rails 中多个字段的相同自定义验证

ruby-on-rails - Capybara 选择器匹配但不是所有过滤器,这是什么意思?

ruby - 运行守护进程,当某个组中的最后一个其他进程结束时,该守护进程将结束

ruby-on-rails - Sidekiq 和 Puma 中的 Redis 变量,线程安全吗?

ruby-on-rails - 如何禁用 Rails 应用程序中的迁移功能?

ruby-on-rails - Google Analytics - 仅在注册成功时进行虚拟综合浏览

ruby-on-rails - 一种在没有 form_for 或 form_tag 的情况下使用 Rails 表单助手的方法

Ruby 模块可以访问它所需要的类方法吗?

ruby-on-rails - 有什么理由不在生产数据库上使用 Rails 迁移吗?