構築しようとしている単純な階層があります。
class Category < ActiveRecord::Base
attr_accessible :name
belongs_to :parent, class_name: "Category"
has_many :children, class_name: "Category", foreign_key: :parent_id
end
ツリーにカテゴリを追加できますが、正常に機能します。ただし、削除すると期待どおりに動作しません。例えば:
root = Category.new(:name => "Root")
child = Category.new(:name => "Child")
child.parent = root
# things are fine to this point. root.children contains child,
# and child.parent is root
root.children.delete child
# at this point root.children is empty, but child.parent is still root
ここで何が起こっているのか考えてみませんか?ありがとう!