2012-02-16 38 views
3

我一直在玩續集和Sequel :: Model。如何用Sequel遞歸保存模型?

我創建了一個Group與許多Items(one_to_many)。

我可以這樣做:

Group.new << Item.new 

但不是:

Group.new.add_item(Item.new) 

也不:

Item.new.group=Group.new. 

它抱怨Group沒有一個主鍵。

如果我保存group,它會保存但不保存項目。

我該如何做一切的遞歸保存?

回答

5

按設計續集不保存整個對象圖。它的關聯修改方法被設計得非常直接,並且不提供很多抽象。

您可能想要使用nested_attributes插件或instance_hooks插件(nested_attributes插件在內部使用)。

# nested attributes plugin 
Group.new(:items_attributes=>[{}]).save 

# instance_hooks plugin 
Group.new.after_save_hook{add_item(Item.new)}.save