1

我有两个 ActiveRecode 模型,CarUser,它们具有多对一的关联:

class Car < ActiveRecord::Base
  has_many :users
  ...
end

class User < ActiveRecord::Base
  belongs_to :car
  ...
end

而且,我在数据库中有两个表,汽车用户users表具有属性car_id

我想要一个迁移,它将一个汽车实例插入到汽车表中,同时,将创建一个与汽车实例关联的用户实例,然后将其插入到用户表中。如何在迁移中做到这一点?

通过运行此迁移,汽车实例及其关联的用户实例都将存储在数据库中的相应表中。

我正在使用 Rails 3。

4

2 回答 2

1

迁移示例

class FillCarsAndUsers < ActiveRecord::Migration
  def self.up
    #if you have a Corresponding class for table 
    Corresponding.find(:all).each do |cor|
      #save data

      car = Car.create(...) #you may save old car id, if need "Car.create(:id => cor.car_id, ...)"
      User.create(:car_id => car.id, ...)
      ...
      User.create(:car_id => car.id, ...)
    end

  end

  def self.down
  end
end
于 2011-03-31T11:40:14.523 回答
0

像这样试试

data = {'car1' => ['user1', 'user2'], 'car2' => ['user3'], 'car3' => ['user4']}
data.each do |car, users|
  car_obj = Car.create(:name => car)
  users.each do |user|
    User.create(:name => user, :car_id => car_obj.id)
  end
end
于 2011-03-31T10:44:51.563 回答