我正在使用Rails 3.我不知道是否是迁移内部的rails规则,似乎我无法将数据插入数据库表。如果有人可以确认是这样的话。
我尝试了以下事项:
我有两个ActiveRecord模型:
class Car < ActiveRecord::Base
has_many :users
...
end
class User < ActiveRecord::Base
belongs_to :car
...
end
我在迁移中生成了一个迁移文件:
def self.up
default_car = Car.new({:name => 'default_car'})
default_car.save() #I got 'false' here
User.create!(:car_id => default_car.id}) #I got default_car.id is null value
end
def self.down
default_car = Car.find({:name => 'default_car'})
default_user = User.find({:car_id=>default_car.id})
default_car.delete
default_user.delete
end
当我尝试将default_car保存到数据库时,我得到 false ,而我的default_user有 null car_id。
是否因为在迁移过程中不允许将数据存储到数据库中?
答案 0 :(得分:3)
您可以在迁移中创建数据,但最好不要使用seeds.rb。
认为上面的内容会失败,因为你的车没有保存,我猜你的车模有一些验证。
答案 1 :(得分:0)
好的,我们已经发现存在一些验证问题。所以你现在想,你可以跳过验证:
default_car = Car.new({:name => 'default_car'})
default_car.save(false)
#=> true