0

Rails 3.2.x + AR プロジェクトの既存のデータを使用して、既存のモデルに新しい関連付けを追加しています。

移行スクリプト:

class AddUserToSignups < ActiveRecord::Migration
  def up
    add_column :signups, :user_id, :integer, :default => nil
    add_index :signups, :user_id
    # UPDATE SIGNUPS S JOIN USERS U ON S.EMAIL=U.EMAIL SET S.USER_ID = U.ID
  end
  def down
    drop_column :signups, :user_id
  end
end

AR を使用して上記のコメントに従って結合された更新を行うにはどうすればよいですか? 私は Sequel ORM のバックグラウンドを持っているので、Sequel のアプローチは次のようになります。

DB[:signups___s].join(:users___u, :u__id => :s__user_id).update(:s__user_id => :u__id)
4

1 に答える 1

1
def up
    add_column :signups, :user_id, :integer, :default => nil
    add_index :signups, :user_id
    ActiveRecord::Base.connection.execute("UPDATE SIGNUPS S JOIN USERS U ON S.EMAIL=U.EMAIL SET S.USER_ID = U.ID")
end
于 2013-06-17T15:54:50.573 に答える