在我的 ROR 项目中,我遇到了一个问题。该项目的先前开发人员已将一组数据保存到特定字段的单个列中。但现在我必须获取这些数据并将其保存到另一个具有当前表 ID 的单独表中。以下是我从数据库获取详细信息的代码:
@ar = AResponse.select("id, selected_barriers");
@ar.each do |p|
p.selected_barriers.each do |barrier|
end
end
我想要的是我必须将p.id
and保存barrier
到一个新表中,并且必须在迁移文件中进行。因此,当迁移运行时,它将从中获取所有现有详细信息AResponse
并将其保存到新的详细信息中。我可以只使用迁移文件吗?如果是这样,我该怎么做?
这是我的完整代码
我试过但它不起作用:以下是我的代码
class AnalysisBarriers < ActiveRecord::Migration
def self.up
end
def change
create_table :analysis_barriers do |t|
t.integer :analysis_response_id, :null => false
t.string :barrier
end
@analysis_response = AnalysisResponse.select("id, selected_barriers");
@analysis_response.each do |p|
p.selected_barriers.each do |barrier|
AnalysisBarriers.create(:analysis_response_id => p.id, :barrier => barrier)
end
end
end
def self.down
drop_table :analysis_barriers
end
end
谢谢