У меня есть следующий хэш:Извлечение данных из сложной хэш
def menu
{
diet: @diet,
proteins: ["Tofurkey", "Hummus"],
veggies: [:ginger_carrots, :potatoes, :yams],
desserts: {
pies: [:pumpkin_pie],
other: ["Chocolate Moose"],
molds: [:cranberry, :mango, :cherry]
}
}
end
Я хочу, чтобы извлечь десерты из хэша, а затем сформировать строку, которая говорит
«Сегодня у нас есть 5 вкусные десерты : Pumpkin Pie, шоколадный лосось и 3 формы: клюква, манго и вишня ».
У меня есть следующий код:
def whats_for_dessert
"Tonight we have 5 delicious desserts:" +
menu[:desserts][:pies].flatten.to_s +
menu[:desserts][:other].to_s
end
Этот код выводит
"Tonight we have 5 delicious desserts:[:pumpkin_pie][\"Chocolate Moose\"]"
Есть ли лучший способ для сбора данных, так что я не в конечном итоге с кучей неудобных символов?
Не используйте массив для пирогов? Например, присоединитесь к запятой, конвертируйте из символа в строку и сделайте ее доступной для чтения человеком? Не использовать символы для представления удобочитаемых данных? –
Как было предложено правильно продумывать структуру данных для требуемой цели. Я предлагаю обернуть виды еды в классе, используя все форматированные методы вывода. Чистый дизайн с самого начала может спасти вас от множества избыточных работ и головных болей. –
@DaveNewton, почему вы не можете опубликовать его в качестве ответа? –