Delete Fix for parent child process in Menu

This commit is contained in:
PhyoTheingi
2017-06-05 18:31:56 +06:30
parent 9bb7eb7f17
commit 7b457400b2
15 changed files with 110 additions and 67 deletions

View File

@@ -1,5 +1,5 @@
class MenuItem < ApplicationRecord
belongs_to :account
# belongs_to :account
belongs_to :menu_category, :optional => true
has_many :menu_item_instances
belongs_to :parent, :class_name => "MenuItem", foreign_key: "menu_item_id", :optional => true
@@ -38,4 +38,31 @@ class MenuItem < ApplicationRecord
return nil
end
def self.deleteRecursive(menu_item)
# find the sub menu item of current item
sub_menu_items = MenuItem.where("menu_item_id=?",menu_item.id)
if sub_menu_items.length != 0
sub_menu_items.each do |subitem|
if deleteRecursive(subitem)
end
end
# find the instances of current menu item
instances = MenuItemInstance.where("menu_item_id=?",menu_item.id)
instances.each do |instance|
instance.destroy
end
menu_item.destroy
return true
else
instances = MenuItemInstance.where("menu_item_id=?",menu_item.id)
instances.each do |instance|
instance.destroy
end
menu_item.destroy
return false
end
end
end