Задать вопрос
@OrdeO
just......newbie

Как заменить слово на другое в переменной Ruby?

У меня приходит некоторая переменная = race.
В которой могу быть ряд значений, пример("Black", "AI/AN**", "NH/PI**", White, Asians)

Как мне сделать так, что б моя переменная автоматически меняло значение по такому алгоритму, если в ней пришло
Black должно стать African American,
White - white,
AI/AN** - American Indian or Alaskan Native
NH/PI - Native Hawaiian or Other Pacific Islander
Я пробовал через gsub - но он не меняет саму переменную
Как это можно реализовать силами руби или регулярных выражений?
  • Вопрос задан
  • 104 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Code Basics
    Ruby для начинающих
    1 месяц
    Далее
  • Хекслет
    Разработчик на Ruby on Rails
    5 месяцев
    Далее
  • Skillbox
    Ruby on Rails с нуля
    10 месяцев
    Далее
Решения вопроса 2
words = ["Black", "AI/AN**", "NH/PI**", "White", "Asians"]

words.each do |word|
  case word
  when "Black"
    word.gsub!("Black", "African American")
  when "AI/AN**"
    word.gsub!("AI/AN**", "American Indian or Alaskan Native")
  when "NH/PI**"
    word.gsub!("NH/P**", "ative Hawaiian or Other Pacific Islander")
  end
end
Ответ написан
Комментировать
0xD34F
@0xD34F
replacements = {
  'Black' => 'African American',
  'AI/AN**' => 'American Indian or Alaskan Native',
  'NH/PI**' => 'Native Hawaiian or Other Pacific Islander'
}

replaced = arr.map{|n| replacements[n] or n}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы