Я использую Rails 3. Я не знаю, является ли это правилом рельсов внутри миграции, кажется, я не могу вставлять данные в таблицу базы данных. Если кто-то может подтвердить, что это так.
Я пробовал следующие вещи:
У меня есть две модели 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
Я получил false, когда пытался сохранить default_car в базу данных, а мой default_user имеет null car_id.
Это потому, что при миграции НЕ разрешено хранить данные в базе данных??
default_car = Car.new({:name => 'default_car'}); default_car.save(); puts default_car.errors
- person fl00r   schedule 01.04.2011