Как мне использовать мой coffeescript, чтобы изменить метод формы на PUT/PATCH?

Я использую Rails 4.2.3. В моем кофейном скрипте я вручную редактирую URL-адрес и действие формы, чтобы они выглядели так…

    # Alter the form submit behavior
    $('#new_my_object').attr("action", "/my_objects/" + id)
    $('#new_my_object').attr("method", "patch")

Но я отправляю свою форму (нажав кнопку отправки…)

<%= button_to "Save", { :action => "create" }, :method => :post, :class => 'button' %>

Запрос (как в Mac Chrome, так и в Firefox) отправляется с методом = «GET» вместо того, на что я его изменил. Что мне нужно сделать, чтобы я мог отправить через метод PATCH? (Мне нужно сделать это, потому что это требуется для моего действия по обновлению).


person Dave    schedule 27.05.2016    source источник


Ответы (1)


method на <form> элементах может быть только get или post, но не put или patch. См. <form> на MDN.

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

person univerio    schedule 28.05.2016
comment
Если то, что вы говорите, правда, то как Rails отправляет формы? В моем файле config/routes.rb я определил ресурсы :my_objects, что подразумевает обновления /my_objects/:id, требующие метода PUT/PATCH, по крайней мере, согласно документации Rails, которую я читаю. - person Dave; 28.05.2016
comment
@Dave Вы можете указать _method=patch в качестве параметра формы в запросе POST, чтобы обойти ограничение. - person univerio; 28.05.2016