我一直在玩Sequel和Sequel :: Model.
我Group用很多Items(one_to_many)创建了一个.
我可以:
Group.new << Item.new
Run Code Online (Sandbox Code Playgroud)
但不是:
Group.new.add_item(Item.new)
Run Code Online (Sandbox Code Playgroud)
也不:
Item.new.group=Group.new.
Run Code Online (Sandbox Code Playgroud)
它抱怨Group没有主键.
如果我保存group,它会被保存但项目不会被保存.
如何对所有内容进行递归保存?
设计续集不保存整个对象图.它的关联修改方法设计得非常直接,并没有提供很多抽象.
您可能希望使用nested_attributes插件或instance_hooks插件(nested_attributes插件在内部使用).
# nested attributes plugin
Group.new(:items_attributes=>[{}]).save
Run Code Online (Sandbox Code Playgroud)
要么
# instance_hooks plugin
Group.new.after_save_hook{add_item(Item.new)}.save
Run Code Online (Sandbox Code Playgroud)