2012-02-16 9 views
3

私はSequelとSequel :: Modelで遊んでいます。Sequelでモデルを再帰的に保存するにはどうすればよいですか?

私は多くのItems(ONE_TO_MANY)とGroupを作成しました。

私にできること

Group.new << Item.new 

ではなく:

Group.new.add_item(Item.new) 

も:

Item.new.group=Group.new. 

それはおよそGroupが主キーを持っていない文句を言います。

groupを保存すると保存されますが、アイテムは保存されません。

すべてを再帰的に保存するにはどうすればよいですか?

答えて

5

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 
関連する問題