首页 > 解决方案 > 如何根据 Ruby on Rails 迁移中另一行的选择值更改_column_default?

问题描述

对不起,你们。Ruby on Rails 的新手。我正在更新包含以下是/否问题的个人资料表格: 在此处输入图像描述

用户表已经有一个现有的children_under_five列,但我想添加一个列has_children来合并他们是否有孩子。唯一的新字段将是has_children,如果有人有一个 5 岁以下的孩子,这意味着他们有一个孩子,那么has_children对于这些​​人来说应该是正确的,否则它应该默认为false. 如何在迁移本身中实现这一点?到目前为止,这就是我所拥有的:

  def change
    add_column :users, :has_children, :boolean, default: false, null: false
  end
end

标签: ruby-on-railsrails-migrationscolumn-defaults

解决方案


在该迁移或以下迁移中添加更新语句...

 def change
   query = <<-SQL
     update users
     set has_children = children_under_five
   SQL

   execute query
 end

推荐阅读