Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails更改列以接受Null并更改列类型_Ruby On Rails_Migration - Fatal编程技术网

Ruby on rails Rails更改列以接受Null并更改列类型

Ruby on rails Rails更改列以接受Null并更改列类型,ruby-on-rails,migration,Ruby On Rails,Migration,是否有一种方法可以在1次迁移中同时执行这两个操作?我正在使用Rails 5,希望将其从字符串更改为文本,但也允许空值。下面的内容似乎只允许null,但没有更改列类型 def up change_column_null :animals, :title, :text, :default => nil change_column_null :animals, :description, :text, :default => nil end def down change_c

是否有一种方法可以在1次迁移中同时执行这两个操作?我正在使用Rails 5,希望将其从字符串更改为文本,但也允许空值。下面的内容似乎只允许null,但没有更改列类型

def up
  change_column_null :animals, :title, :text, :default => nil
  change_column_null :animals, :description, :text, :default => nil
end

def down
  change_column :animals, :title, :string
  change_column :animals, :description, :string
end  

默认情况下,字符串和文本数据类型允许空值,这也是它们的默认值,除非您之前定义了一些约束

无论如何,明确地说,这应该是可行的:

def up
更改列:动物,:标题,:文本,null:true,默认值:nil
更改列:动物,:描述,:文本,null:true,默认值:nil
结束
降下
更改列:动物,:标题,:字符串
更改列:动物,:说明,:字符串
结束