путь правильный, но если вы посмотрите внимательно, вы увидите, что это не запрос GET, а запрос DELETE, поэтому передайте метод:
<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
Edit:
Это должно добавитьdata-method="delete"
атрибут вашей ссылки.Проверьте это (посмотрите на сгенерированный HTML).Если атрибут присутствует и ничего не происходит, если вы щелкнете по этой ссылке, убедитесь, что вы включили файлы javascript по умолчанию в свой макет.В вашем макете должна быть строка типа:
<%= javascript_include_tag :defaults %>
.
>> Важно << </strong>: вы не можете набратьВыйдите из URL в вашу адресную строку и нажмите Enter, это не сработает, потому что это GET, а не DELETE запрос.Волшебство этого заключается в том, что помощник javascript подключится к событию «onclick» ссылки, а затем отправит скрытую форму (через POST) по адресу href
URL-адреса, содержащего скрытое поле с именем _method
сзначение "удалить".
Зачем все это?Это вопрос безопасности, иначе кто-то может перенаправить вас на страницу выхода из системы и просто выйти из системы, и все ваши несохраненные данные сеанса исчезнут ...
Если вы reeeeaaaallllyyy, вам нужен выход из системы через GET, добавьте это
config / initializers / devise.rb :
config.sign_out_via = :get