# Format for attributes json attr_format = [] param_count = item.item_attributes.count # Format for attributes json item.item_attributes.each do|attr_id| menu_attr = MenuItemAttribute.find(attr_id) if attr_format.count == 0 attr_format.push({ type: menu_attr.attribute_type, value: [] }) end attr_format.each do |af| if menu_attr.attribute_type == af[:type] af[:value].push(menu_attr.value) else new_attr = {type: menu_attr.attribute_type, value: [ menu_attr.value ] } attr_format.push(new_attr) end break if attr_format.count > param_count end param_count -= 1 end #Menu Item Information json.id item.id json.item_code item.item_code json.name item.name json.alt_name item.alt_name json.image item.image_path.url json.description item.description json.Information item.information json.type item.type json.account_id item.account_id json.min_qty item.min_qty json.is_available item.is_available json.is_sub_item item.is_sub_item json.item_sets item.item_sets json.attributes attr_format json.options item.item_options # json.min_selectable_item item.min_selectable_item # json.max_selectable_item item.max_selectable_item #Item instance # if item.menu_item_instances.count == 1 then # item_instance = item.menu_item_instances[0] # json.price = item_instance.price # json.is_available = item_instance.is_available # json.is_on_promotion = item_instance.is_on_promotion # json.promotion_price = item_instance.promotion_price # json.item_attributes = item_instance.item_attributes json.instances item.menu_item_instances do |is| json.code is.item_instance_code json.name is.item_instance_name json.price is.price json.is_available is.is_available json.is_default is.is_default json.is_on_promotion is.is_on_promotion json.promotion_price is.promotion_price json.item_attributes is.item_attributes json.item_sets is.item_sets end #Child Menu items # if (item.children) then # json.set_items item.children.each do |item| # json.partial! 'api/restaurant/menu/menu_item', item: item # end # end