私のRORプロジェクトで、問題が発生しました。プロジェクトの以前の開発者は、特定のフィールドの単一の列にデータの配列を保存しました。しかし今、私はそれらのデータを取得し、それを現在のテーブルIDで別の別のテーブルに保存する必要があります。以下は、dbから詳細を取得するための私のコードです。
@ar = AResponse.select("id, selected_barriers");
@ar.each do |p|
p.selected_barriers.each do |barrier|
end
end
私が欲しかったのは、p.id
と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
ありがとう