Я бы предложил использовать хэши для отображения возможных значений, например:
days_ago_filter_map = {
"lt" => "Less than",
# ...other cases here...
}
musical_key_map = {
3 => "D♯, E♭",
# ...other cases here...
}
Затем вы можете включить key
:
variables.map do |key, value|
label = "#{key.split('_').map(&:capitalize).join(' ')}"
formatted_value = case key
when "days_ago_filter" then days_ago_filter_map.fetch(value)
when "key" then musical_key_map.fetch(value)
else value
end
"#{label}: #{formatted_value}"
end.join(' - ')
Обратите внимание, что если выЕсли на ваших картах ничего не указано, приведенный выше код вызовет KeyNotFound
ошибок.Вы можете установить значение по умолчанию в вашем fetch
, например
days_ago_filter_map.fetch(value, "Unknown filter")
musical_key_map.fetch(value, "No notes found for that key")