データベースをシードしようとしましたが、検証に失敗しました。 user_id
を見つけることができません:データベースのシード中にhas_manyとcreateでRailsの検証に失敗しました
Validation failed: Characters user can't be blank
どうしてですか? self.characters.create
を実行すると、作成中のキャラクターに自動的に渡されたユーザーIDは表示されませんか?
user.rb
has_many :characters
accepts_nested_attributes_for :characters
after_save do
if (self.characters.count == 0)
self.characters.create
end
end
character.rb
belongs_to :user
validates :user_id, presence: true
seeds.rb
User.create!(email: "[email protected]",
activated_at: Time.zone.now,
characters_attributes: [{ first_name: "Baz", last_name: "Chump" }])
あなたが提案した変更を加えましたが、私はまだ同じエラーが発生しています。最初に 'Character'オブジェクトを作成しようとしているのはなぜですか?私は 'Character'オブジェクトがユーザIDを必要とするため、意図的に' self_characters.create'を 'after_save'に入れました。 – Bazley
@Bazley私は自分の答えを更新しました。両方のモデルで変更を適用します。 –
ありがとうございますが、ユーザーとキャラクターの両方のモデルを更新しても同じエラーが発生しています。 – Bazley