gpt4 book ai didi

ruby-on-rails - 如何在表之间部分复制(事件)记录?

转载 作者:行者123 更新时间:2023-12-03 16:09:30 24 4
gpt4 key购买 nike

在映射到 ActiveRecord 的两个表中具有未知数量的相同列,例如:

  Table A      Table B
--------- ---------
id id
name name
age email
email is_member

我如何(优雅地)从 Table A 的记录中复制所有相同的属性到 Table B 的记录,除了 id属性?

对于上面的示例表, nameemail应复制字段。

最佳答案

尝试这个:

获取 TableA 和 TableB 之间列的交集

columns = (TableA.column_names & TableB.column_names) - ["id"]

现在遍历 TableA 行并创建 TableB 行。
TableB.create( TableA.all(:select => columns.join(",") ).map(&:attributes) )

编辑:复制一条记录:
table_a_record = TableA.first(:select => columns.join(","), :conditions => [...])
TableB.create( table_a_record.attributes)

关于ruby-on-rails - 如何在表之间部分复制(事件)记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3723168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com