Почему в книгах или справочниках по Ruby on Rails всегда говорится, что обновление выполняется с помощью PUT, а уничтожение - с помощью DELETE, когда это не так? - PullRequest
5 голосов
/ 12 марта 2011

Потому что, если я использую Fiddler для мониторинга, это:

CRUD       Method  Path        With              Idempotent?   action
----       ------  ----        ----              -----------   ------
Create     POST    /foos/                        No            create
Retrieve   GET     /foos/:id                     Yes           show
Update     POST    /foos/:id   _method=put       Yes           update
Destroy    POST    /foos/:id   _method=delete    Yes           destroy

, поэтому PUT и DELETE (как глагол HTTP) фактически не используются. Но почему в книгах и справочниках Rails всегда говорится, что это PUT и DELETE?

Ответы [ 2 ]

4 голосов
/ 12 марта 2011

Поскольку веб-браузеры не имеют интерфейса для генерации PUT или DELETE запросов.

Конечно, у клиентов, которых вы программируете, достаточно гибкости для использования PUT и DELETE как и предполагалось, но браузеры действительно могут использовать только GET и POST.

0 голосов
/ 12 марта 2011

Поскольку они ДОЛЖНЫ быть PUT и DELETE, но многие серверы из коробки не поддерживают PUT и DELETE, поэтому они туннелируют его через POST.

...