我有一種情況,用戶提交多模型表單。通過這種形式,我必須將用戶從我的數據庫中隨機分配到他們的帳戶。當我循環訪問數據時,我用布爾型in_use標誌標記了我分配給它們的項目。問題是,在以下情況下:Rails:掛鉤用於在模型附加到其父資源時驗證模型?
2.times do |n|
# grab random item which will be parent
parent = # some random code to grab an item not in use
parent.in_use = 1
parent.child.build
children << child
end
這裏涉及三種模型。父母本身在自己的父母中,因此子女陳述中的子女< <。這裏的問題是一個邊緣條件是抓取一個沒有使用的隨機項的代碼可以抓住同一個父項兩次,因爲我不知道這個鉤子會允許我在添加子項後保存parent.in_use其母公司通過children << child
。循環將再次執行,in_use標誌未被保存到數據庫,並且可以再次選擇它。有沒有辦法堅持下去,如果在這樣的情況下驗證失敗,然後再回滾它?