какой путь уничтожить регистрацию с помощью устройства - PullRequest
8 голосов
/ 16 февраля 2011

Я пытаюсь добавить ссылку, чтобы пользователь мог уничтожить свою учетную запись. Я использую встроенный класс регистрации.

На мой взгляд, <%= link_to 'Destroy', current_user, :confirm => 'Are you sure you want to destroy your account?', :method => :delete %> указывает на localhost: 3000 / users / 4 в качестве примера

Прежде всего, это правильная ссылка для использования? Во-вторых, как перенаправить на корневой путь, потому что в настоящее время похоже, что он пытается перенаправить пользователя с идентификатором 4 (и не удается, потому что он защищен).

Рейк-маршруты дают DELETE /users(.:format) {:action=>"destroy", :controller=>"devise/registrations"}

Заранее спасибо.

1 Ответ

9 голосов
/ 16 февраля 2011

Попробуйте

<%= link_to 'Destroy', user_registration_path, :confirm => 'Are you sure you want to destroy your account?', :method => :delete %>

Это связано с разработкой трактовки регистрации как Единственного ресурса .

Кроме того, запустите rake routes, и вы увидите подробности о маршрутизации регистрации:

user_registration      POST   /users(.:format)                                       {:action=>"create", :controller=>"devise/registrations"}
new_user_registration  GET    /users/sign_up(.:format)                               {:action=>"new", :controller=>"devise/registrations"}
edit_user_registration GET    /users/edit(.:format)                                  {:action=>"edit", :controller=>"devise/registrations"}
user_registration      PUT    /users(.:format)                                       {:action=>"update", :controller=>"devise/registrations"}
user_registration      DELETE /users(.:format)                                       {:action=>"destroy", :controller=>"devise/registrations"}

Это означает:

  • user_registration_path - вспомогательный метод, которыйвозвращает /users(.format)
  • Выполнить DELETE запрос на /users(.format) удалит регистрацию
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...