Дополнительный маршрут в Рельсах? - PullRequest
2 голосов
/ 13 марта 2019
Rails 5.2.2

В моем файле Routesмаршрут обновления?или это просто визуальный артефакт команды rake route?

1 Ответ

2 голосов
/ 13 марта 2019

Rails изначально использовал только HTTP-глагол PUT для обновлений. В 2012 PATCH был объявлен новый первичный метод HTTP для обновлений из-за семантики того, как IETF определяет PUT .

Теперь допустим, что у веб-приложения есть модель Invoice с оплаченным флагом это указывает, был ли счет оплачен. Как вы установите это флаг в RESTful способ? Отправка оплаченного = 1 через PUT в / invoices /: id делает не соответствует семантике HTTP, потому что такой запрос не будет отправка полного представления счета на замену.

Всю дискуссию о том, как и почему можно найти в выпуске # 348 .

Однако по причинам устаревшей совместимости макросы resources и resource по-прежнему генерируют маршрут PUT. Это был лучший компромисс, чем нарушение работы Rails-маршрутизатора для одинаковой обработки PUT и PATCH.

Почему эта унаследованная совместимость все еще существует в 2019 году, это еще один действительно хороший вопрос.

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