Ruby on rails Rails:重写并使用现有的gem模块方法
我有一个带有辅助模块的gem。 乙二醇 宝石模块Ruby on rails Rails:重写并使用现有的gem模块方法,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个带有辅助模块的gem。 乙二醇 宝石模块 module Hotel module MenuItem def menu(session) x = DEFAULT_FOOD_MENU[session] end def print_menu(menu) #printing menu end end 自定义类 module SizzSuzzHotel module MenuItem include Hotel::MenuItem def menu
module Hotel
module MenuItem
def menu(session)
x = DEFAULT_FOOD_MENU[session]
end
def print_menu(menu)
#printing menu
end
end
自定义类
module SizzSuzzHotel
module MenuItem
include Hotel::MenuItem
def menu(session)
# I want to use the default menu item and also specific menu related to this hotel! .
end
end
module SizzSuzzHotel
class order
include MenuItem
def order(session)
menu_item = menu(session)
print(menu_item)
end
end
end
在这里,我想覆盖菜单,我想使用现有的打印菜单!
我怎样才能做到这一点?使用gem模块方法,并向其中添加一些其他内容?如果包含
MenuItem
模块,这两种方法都可用,因此您可以轻松地重新定义其中一种
include MenuItem
def menu(session)
... here you write you custom menu method behaviour
end
def order(session)
menu_item = menu(session) # => above menu method will be called
print(menu_item) # => print method from MenuItem module will be called
end
我不想复制/粘贴或重写基本菜单(会话)功能。像使用超级类内方法一样,这里有更好的方法重用gem方法吗?