Как я могу удалить учетную запись пользователя без использования Javascript? - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь создать в Rails форму, которая удаляет пользователя без Javascript или используя "method:: delete".Как я могу это сделать?Когда я пытаюсь использовать «users_destroy_path» или «user_path (@ profile.user)», Rails перенаправляет меня на действие «show» моего контроллера Users вместо «destroy».

Форма:

<form action="<%= user_path(@profile.user) %>"" method="delete">
      <input type="submit" value="Destroy">
</form>

Ответы [ 2 ]

0 голосов
/ 22 января 2019

вы можете сделать таким образом, используя метод уничтожения в контроллере

def destroy
  @profil = Profil.find(params[:id])
  @profil.destroy
  redirect_to profil_path(@profil.user.id)
 end

в модели пользователя

has_many :profils

в профильной модели

belongs_to :user

в поле зрения

<p> <%= button_to "Cancel my account", registration_path(resource_name), data: { confirm: "Are you sure?" }, method: :delete %></p>
0 голосов
/ 22 января 2019

На самом деле нет method="delete" в форме HTML.Чем полезны рельсы, так это тем, что они создают скрытый ввод, который на самом деле включает метод формы запроса DELETE:

<input name="_method" type="hidden" value="delete">

Вы можете создать его самостоятельно.Хотя убедитесь, что вы придерживаетесь следующего шаблона:

<form method="post" action="/path/to/resource">
  <input type="hidden" name="_method" value="DELETE">
  <input type="submit" value="Destroy">
</form>

Это то же самое для запросов PUT или PATCH.Они используют метод POST в форме HTML, а затем объявляют PUT или PATCH в скрытом _method вводе.

<form method="post" action="/path/to/resource">
  <input type="hidden" name="_method" value="PUT">
  --- OR ---
  <input type="hidden" name="_method" value="PATCH">
  ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...