Там я сидел со своим партнером по парному программированию, пытаясь понять, как реализовать запрос PATCH, который будет выполнять обновление. Это заняло у нас так много времени, что дошло до того, что мы были готовы выбросить наши ноутбуки в окно (делая карьеру программиста, вы действительно думаете о таких вещах). Мы пробовали так много разных способов решить проблему, но каждый раз получали сообщение об ошибке, информирующее нас о проблеме с маршрутизацией HTTP-запросов. Мы начали сомневаться в своих любительских навыках программирования и во всем, чему мы научились до этого момента во Flatiron.

Потратив много времени на эту проблему, мы начали сомневаться во всем, что знали или узнали. Пришло время сменить карьеру? Мы сделали передышку, провели небольшое исследование и попросили о помощи.

Оказывается, код был настроен правильно и работал бы, если бы не одна строка кода, которая отсутствовала. Но потом мы обнаружили эту волшебную строчку кода, которая заставила все работать. (Такие славные события обычно заставляют нас пересмотреть свою карьеру программиста.

Используйте Rack :: MethodOverride

Настойчивость и желание программистов решать задачи просто поражают. Если одна строка кода проблематична, даже один пробел или одна буква отсутствует или неуместна, наступают часы разочарования и переосмысления своей жизни. Однако там мы были с нашей волшебной строкой кода, и все казалось другим, даже мир казался ярче. Итак, что именно было этим магическим заклинанием ... эээ ... я имею в виду строку кода.

На самом деле, если вы не начали тему Rails, было бы сложно импровизировать с HTTP-запросом. Причина в том, что до запуска Rails все, с чем нам разрешено играть, - это запросы GET и POST. Теперь мы могли бы использовать их, но это был бы не самый эффективный вариант. Поэтому, чтобы «обмануть» программу или запросы, мы используем промежуточное ПО Rack :: MethodOverride. Таким образом, мы будем отвечать за HTTP-запросы, которые мы хотели бы использовать. Это дает нам свободу экспериментировать с PATCH, PUT и DELETE.

Все промежуточное ПО MethodOverride должно распознавать ваш запрос.

Теперь это звучит круто! Ой! Есть еще одна проблема. Куда мы на самом деле поместим этот «волшебный код», ведь у нас так много папок и файлов. Наше волшебное промежуточное ПО входит в:

требуется ‘./config/environment’

Пожалуйста, сэкономьте время и поместите его над контроллерами, вот так:

Как начинающий разработчик, синтаксис может вызвать серьезные проблемы. Расположение различных операций и разнообразие различных приемов, присущих программированию, поражает нас, новичков. Я и мой партнер по парному программированию знали, как реализовать логику, но какое-то время мы боролись с Rack :: MethodOverride, с тем, как его использовать и где его найти.

По этой причине я решил написать об этой проблеме на случай, если начинающие программисты, такие как я, будут испытывать приступ разочарования. Решение действительно находится в пределах вашей досягаемости с небольшим руководством. Вам не нужно бороться, как мы. Возьми это волшебство и используй его! Удачного программирования!

Ресурсы:

1. https://tynn.readthedocs.io/en/latest/guides/method_override/

2. https://repromancer.me/blog/2017/08/07/rack-methodoverride-and-html-form-sorcery/

Https://www.rubydoc.info/gems/rack-methodoverride-with-params/1.0.0