Как оформить запрос на удаление в ruby ​​на рельсах - PullRequest
0 голосов
/ 17 октября 2018

В моем приложении rails у меня есть следующая ссылка:

<%= link_to("Log out", logout_path, method: :delete)%>

И в своих маршрутах я добавил:

  delete '/logout',  to: 'sessions#destroy'

Однако, когда я нажимаю на ссылку Выйти,Я получаю следующую ошибку маршрутизации:

No route matches [GET] "/logout"

Кажется, что даже если я указал "method:: delete", функция "link_to" по-прежнему выдает запрос get вместо запроса на удаление.Как отправить запрос на удаление с помощью ruby ​​on rails?

Мой application.js выглядит следующим образом:

//= require rails-ujs
//= require activestorage
//= require turbolinks
//= require_tree .
//= require jquery
//= require jquery_ujs
//= require bootstrap

1 Ответ

0 голосов
/ 17 октября 2018

Обычно это происходит из-за отсутствия зависимости JS в application.js.

Если вы используете Rails 5, добавьте:

//= require rails-ujs

И для более ранних версий убедитесь, что у вас есть:

//= require jquery
//= require jquery_ujs 

Там.

Причина этого в том, что небольшое волшебство Rails «подделывает» запрос на удаление, так как большинство браузеров не поддерживают это.Он добавит data-method="delete" к вашему HTML-тегу, что позволит вашему приложению распознавать запрос, как и должно быть, и обрабатывать как DELETE (даже если на самом деле отправлено как GET запрос).

Кроме того, убедитесь, что вы загружаете указанный Javascript через следующую строку в вашем макете:

<%= javascript_include_tag "application" %>

Дайте мне знать, как у вас идут дела или если у вас есть какие-либо вопросы - надеюсь, это поможет.

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