我有4张表和4个模型。
Activity, Census, RequestBulk和EntityRequest.
我最近创建了一个新的表RequestBulk。该表查找Activity和Census表中的所有记录,并反映它们的数据。任何唯一的列都插入到RequestBulk表的元数据字段中。当创建Activity或Census时,它也将创建EntityRequest记录。这个EntityRequest记录有一个from_id列。这一列是活动ID或普查ID。
我想要做的是创建一个rake任务,该任务将采用RequestBulk的ID,而不是替换from_id数据(替换活动或普查ID)。
注意- RequestBulk表包含一个RequestType字段,要么是'Activity',要么是'Census'。
活动和人口普查都有has_many :EntityRequests, as :parentable
关系。
我在想:
RequestBulk.all.each do |rb|
if rb.request_type == 'BulkActivity'
EntityRequest.update(from_id: rb.id)
end
end
然而,这只是简单地取ID为RequestBulk表中的最后一条记录,并使用此ID更新EntityRequest表中的所有记录。
data_table_1 = Table1.pluck(:id, :data)
data_table_2 = Table2.pluck(:id, :data)
data_table_1.each do |id, _|
row_table_2 = data_table_2.find { |row| row[0] == id }
Table1.find(id).update(data: row_table_2[1]) if row_table_2
end
我希望这对你有帮助