我一直在玩Sequel和Sequel :: Model。
我创建了Group
个Items
(one_to_many)。
我能做到:
Group.new << Item.new
但不是:
Group.new.add_item(Item.new)
也不:
Item.new.group=Group.new.
抱怨Group
没有主键。
如果我保存group
,则会保存,但不会保存这些项目。
如何对所有内容进行递归保存?
答案 0 :(得分: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