我有两个ActiveRecode模型, Car 和用户,它们具有多对一关联:
class Car < ActiveRecord::Base
has_many :users
...
end
class User < ActiveRecord::Base
belongs_to :car
...
end
而且,我在数据库中有两个表,汽车和用户。 用户表的属性为 car_id
我希望进行迁移,将汽车实例插入汽车表,同时,将创建一个与之关联的用户实例然后将汽车实例插入用户表。 如何在迁移中执行此操作?
通过运行此迁移,汽车实例及其关联的用户实例都将存储在数据库中的相应表中。
我正在使用Rails 3。
答案 0 :(得分: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
答案 1 :(得分: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