1
有沒有寫這個代碼的一個更好的辦法?它只是不跟我坐的權利,我覺得有一些真正「像Rails的,我應該已經知道:Rails的:通過belongs_to的保存記錄和設置外鍵
belongs_to :parent_in_use
belongs_to :parent_template
def after_create
new_parent_in_use = ParentInUse.create!(self.parent_template.attributes)
self.update_attribute(:parent_in_use_id, new_parent_in_use.id)
end
創造了記錄後,我採取了所選父模板和創建parent_in_use
記錄基於它。這樣模板可以改變,in_use記錄將永遠與我的對象一起生活。 ParentInUse和ParentTemplate類都使用STI從Parent繼承。
我敢肯定這應該是很簡單,但我不知道怎麼做了,基本上我想創建並在一次操作中分配的記錄。
我想成爲100%確信current_model創建相應的記錄之前就已經存在。如果模型無效,我認爲它不會進入before_create回調? – tsdbrown 2009-11-19 17:51:18
這是一個有效的假設。同樣,所有的回調函數都被封裝在單個事務中,如果它們中的任何一個返回false或者引發錯誤,則整個事務被回滾。因此,除非一路上的所有內容成功,否則不會創建ParentInUse。 – EmFi 2009-11-19 18:01:05