0

Rails プロジェクトで、あるテーブルから別のテーブルにデータを移行しようとしています。元のテーブルを作成するときは、(スニペット) を使用します。

create_table :my_original_table do |t|
  #OTHER COLUMNS HERE
  t.integer :first_record_pub
end

次に、移行先の 2 番目のテーブルを作成するときに、次を使用します。

create_table :my_second_table do |t|
  #OTHER COLUMNS HERE
  t.integer :my_pub
end

最後に、実際のデータを移行するときは、次を使用します。

original_value = MyOriginalTable.all
original_value.each do |s|
  new_first_record = MySecondTable.new
  #OTHER DATA MIGRATIONS HERE
  new_first_record.my_pub = s.first_record_pub
  new_first_record.save
end

移行する他のすべての列 (コメントアウトしたもの) は完全に移行されます。ただし、移行された my_second_table では、my_pub 列に空白のエントリがいくつかあり (元のテーブルの一部のエントリが空白であるため、予期されます)、他のエントリの値は単に '1' です。何らかの理由で、正しい first_record_pub 値が正しく移行されませんでした。

この問題を解決する方法について誰かアイデアがありますか? ありがとう!

4

1 に答える 1

1

新しい列を作成し、同じ移行でその列にデータを移動しようとしていますか?その場合は、列の作成と列へのデータの移動の間にreset_column_informationを呼び出す必要があるか、データの作成と移動を2つの別々の移行に分ける必要があります。

于 2012-07-24T16:01:26.780 に答える