我試圖爲我的數據庫播種,但我得到一個失敗的驗證。它找不到user_id
:Rails has_many驗證失敗並在數據庫種子期間創建
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'對象?我故意將'self.characters.create'放在'after_save'中,因爲'Character'對象需要用戶標識。 – Bazley
@Bazley我已經更新了我的答案。在兩個模型中應用更改。 –
謝謝,但即使在更新用戶和角色模型後,我仍然遇到同樣的錯誤。 – Bazley