146

我在 Rails 应用程序中有一个表(在 schema.rb 中),如下所示:

create_table "users", :force => true do |t|
   t.string "name", :null=>false
   t.string "address", :null=>false
end

我想编写一个 Rails 迁移以允许地址字段为空。即迁移后的表如下所示:

create_table "users", :force => true do |t|
   t.string "name", :null=>false
   t.string "address"
end

我需要做什么来消除约束?

4

2 回答 2

290

在 Rails 4+ 中,为了删除非空约束,您可以使用change_column_null

change_column_null :users, :address, true
于 2014-01-31T06:49:11.167 回答
177

不确定你能打电话t.address吗?无论如何......我会这样change_column使用

change_column :users, :address, :string, :null => true

文档... http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_column

于 2011-04-15T20:42:15.423 回答