Delete Fix for parent child process in Menu
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user