0

いくつかのリソースを読みましたが、答えを見つけることができません。「親が保存されていない限り、作成を呼び出すことはできません」を返す次のコード行があります。

      test.entries.create!({
        :date => date,
        :volume => 15
      })

このコード行の上に、次のものがあります。

  1.upto(5) do |i|
    test = Test.create(
      :name => "test #{i}"
    )

これらのスクリプトは両方とも、1 つの大きなループ内にカプセル化されています。したがって、スクリプトはを使用しtestてエントリを作成し、次に作成します。testtest.entries.create!

ただし、親が保存されていないため、スクリプトは失敗しています。とを.create!行うのは私の理解ですので、イニシャルは保存する必要があります。また、エラーの前に手動で入力しようとしましたが、うまくいきませんでした。何かご意見は?.new.savetesttest.save

4

1 に答える 1

2

2番目のコードブロックのテストは何ですか。Test.create のことですか?また、保存を妨げている可能性のある検証はありますか?

create を追加してみてください。代わりに test.create に追加して、エラーが発生した場合に例外を発生させます。

于 2013-08-08T18:47:31.380 に答える