我的应用中有一个has_many关系。例如部门有很多用户。 我想将它转换为has_and_belongs_to_many关系。 作为迁移的一部分,我需要保留用户和部门之间的当前关系,这意味着我必须将所有数据移动到新的连接表。 这是我创建的迁移:
class CreateUserDepartment < ActiveRecord::Migration
def change
create_table :users_departments do |t|
t.belongs_to :user
t.belongs_to :department
end
###############################################
# need to move the data to the new table here #
###############################################
remove_column :users, :sub_department_id
end
end
写缺失线的最佳方法是什么?
答案 0 :(得分:1)
如果必须,您可以使用execute "your SQL"
。看到这个问题:
How do I add some inserts in rails migration?
该问题的“请勿”回答的主要价值在于解释为什么您不想使用模型来执行此操作。另外,如果您能够或希望使用change
执行此操作,我会感到惊讶,您可能需要使用self.up
。