我一直在玩 Sequel 和 Sequel::Model。
Group
我用很多Items
(one_to_many)创建了一个。
我可以:
Group.new << Item.new
但不是:
Group.new.add_item(Item.new)
也不:
Item.new.group=Group.new.
它抱怨Group
没有主键。
如果我 save group
,它已保存但项目未保存。
如何递归保存所有内容?
Sequel by design 不会保存整个对象图。它的关联修改方法设计得非常直接,不提供太多抽象。
您可能想要使用 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