在映射到 ActiveRecord 的两个表中,相同列的数量未知,例如:
Table A Table B
--------- ---------
id id
name name
age email
email is_member
我如何(优雅地)从记录中复制所有相同的属性Table A
到一个记录Table B
, 除了id
属性?
对于上面的示例表,name
and email
应复制字段。
尝试这个:
获取TableS和Table之间的列的交集
columns = (TableA.column_names & TableB.column_names) - ["id"]
现在迭代表行并创建表行。
TableB.create( TableA.all(:select => columns.join(",") ).map(&:attributes) )
编辑:复制一条记录:
table_a_record = TableA.first(:select => columns.join(","), :conditions => [...])
TableB.create( table_a_record.attributes)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)