如何在*一次*连接列上进行数据更新迁移



我在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)
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

最新更新