0

对不起,你们。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
4

3 回答 3

2

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

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

   execute query
 end
于 2020-08-01T02:22:14.323 回答
0

在这里使用一种方法怎么样?

class User < ApplicationRecord
  def has_children?
    self.children_under_five > 0 ? true : false
  end
end

你可以用它作为

>> user = User.first
   user.has_children? # returns true or false
于 2020-08-01T07:10:55.937 回答
-1

我很不明白你的问题,但问题是?如何添加带有迁移的列?好吧:rails g migration add_has_children_to_users has_children:boolean那么rails db:migrate

于 2020-08-01T01:47:51.223 回答