0

Rails3を使用しています。移行内でデータベーステーブルにデータを挿入できないように見えるのがRailsのルールかどうかはわかりません。誰かがそれを確認できればそうです。

私は次のことを試しました:

私は2つの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のcar_idがnullなります

移行時にデータベースにデータを保存できないためですか?

4

2 に答える 2

3

移行時にデータを作成できますが、代わりにseeds.rbを使用することをお勧めします。

あなたの車が保存されていないため、上記は失敗すると思います。あなたの車のモデルにはいくつかの検証があると思います。

于 2011-04-01T07:44:27.323 に答える
0

わかりました。検証の問題がいくつかあることがわかりました。したがって、検証をスキップできるようになります。

default_car = Car.new({:name => 'default_car'})
default_car.save(false)
#=> true
于 2011-04-01T08:06:16.483 に答える