用Rails中另一个表中的数据替换一个表中的数据



我有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

我希望这对你有帮助

相关内容

最新更新