无法在迁移中将数据插入数据库?

时间:2011-04-01 07:34:48

标签: ruby-on-rails ruby-on-rails-3 rails-migrations

我正在使用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。

是否因为在迁移过程中不允许将数据存储到数据库中?

2 个答案:

答案 0 :(得分:3)

您可以在迁移中创建数据,但最好不要使用seeds.rb。

认为上面的内容会失败,因为你的车没有保存,我猜你的车模有一些验证。

答案 1 :(得分:0)

好的,我们已经发现存在一些验证问题。所以你现在想,你可以跳过验证:

default_car = Car.new({:name => 'default_car'})
default_car.save(false)
#=> true
相关问题