Как удалить значение ключа в массиве хэшей и вернуть nil? - PullRequest
0 голосов
/ 29 июня 2019

Я начал изучать Ruby неделю назад, и для этой домашней работы на выходных мне нужно защитить уже выполненную функцию, которая выпускает массив хэшей.

Тест выглядит следующим образом:

def test_remove_pet_by_name
  remove_pet_by_name(@pet_shop, "Arthur")
  pet = find_pet_by_name(@pet_shop,"Arthur")
  assert_nil(pet)
end

Я испробовал 3 различных варианта, как показано ниже, но я все еще не нашел идеальный вариант.

    def remove_pet_by_name(pet_shop, name)
      return @pet_shop[:pets].delete_if {|x| x[:name] == "Arthur"}
    end

    def find_pet_by_name(pet_shop, name)
      pet_shop[:pets].delete(find_pet_by_name(pet_shop, name))
    end

Оба варианта имели ту же ошибку, что find_pet_by_name неопределен

    def find_pet_by_name(pet_shop, name)
      return @pet_shop[:pets].delete_if[:pets].find {|x| x[:name] == "Arthur"}
    end

В этом сообщении была еще одна ошибка, цитата:

Вы имели в виду remove_instance_variable

Что еще можно попробовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...