假設我有這樣的:如何將現有記錄添加到has_many,而不立即保存到數據庫?
class Pirate < ActiveRecord::Base
has_many :parrots
validates_presence_of :name
end
class Parrot < ActiveRecord::Base
belongs_to :pirate
end
而且我有現有的海盜和鸚鵡與IDS 1〜10現在,我想這樣做:
p = Pirate.first
p.name = nil
p.parrot_ids = [1,2,3]
p.save if p.valid?
因爲海盜對象無效(它缺少名稱)我不希望它被保存。但是,鸚鵡現在已經與盜版聯繫在一起,並且它已經在數據庫中提交了。
如何分配鸚鵡,但只有在p.save成功後才能將鏈接保存到數據庫中?也就是說,如何在一次交易中將海盜和與鸚鵡的鏈接保存起來?
嗨,肯,我想讓鸚鵡參與驗證。我有:parrot_ids的質量分配。如果由於用戶試圖在鸚鵡中進行破解而導致驗證失敗,則他們不允許鏈接到該鏈接,則p.save應該失敗,此後,p.parrots應返回用戶嘗試的鸚鵡。 –