Добавьте кнопку выхода из системы в УСПОКОИТЕЛЬНОЙ аутентификации

Я установил УСПОКОИТЕЛЬНУЮ аутентификацию, и все, кажется, хорошо работает. я могу подписаться и войти в систему. единственным путем я могу выйти из системы, путем ввода в URL http://localhost:3000/logout

как я добавляю кнопку выхода из системы на странице? я пытался добавить тот к members.rhtml

<%= link_to "logout", :controller=> "sessions", :action=> "destroy" %>

который ссылается на session_controller.rb, но я добираюсь, ошибка "Никакое действие ответила на шоу. Действия: создайте, уничтожьте, и новый"

какие-либо мысли? спасибо

8
задан Anthony 30 January 2010 в 02:51
поделиться

1 ответ

Что у вас есть в файле маршрутов?

Попробуйте положить

map.log_out 'logout', :controller => 'sessions', :action => 'destroy'

в свои маршруты.

Тогда просто иметь

<%= link_to "Sign out", log_out_url %>

для ссылки на выйти.

Редактировать

Все все вниз, чтобы вы указываете маршрутизацию.

Потому что у вас была карта .log_out в маршрутизации, то URL http: // localhost: 3000 / Выход URL-адрес URL-адрес забирается и направляется на правильное действие.

Если у вас есть:

<%= link_to "logout", :controller=> "sessions", :action=> "destroy" %>

Это просто сгенерирует ссылку для вас http: // localhost: 3000 / сеанс . Но это ничего не делает для маршрутизации. Вам все еще нужно указать правильные маршруты.

Обратите внимание, что рельсы не добавляют к URL-адреса. (это не создаст http: // localhost: 3000 // Уничтожьте .) .) Предполагается, что если у вас есть действие уничтожения, вы будете отправлять его с помощью удаления http глагол. По какой-то причине его не совсем идеально, и он на самом деле не имеет значения по умолчанию для отправки глагола удаления.

Вы можете заставить это сделать это:

<%= link_to "logout", {:controller=> "user_sessions", :action=> "destroy"}, :method => :delete%>

Это все еще не будет работать, если вы также не направите его правильно. Если вы поместите в маршруты следующие маршруты:

map.resource :session

Затем Rails генерируют маршрутизацию для всех глаголов и указывают для них действия по умолчанию для них, включая удаление. Больше информации можно найти здесь: рельсы маршрутизации снаружи в .

Эта целая страница стоит читать и снова, пока вы действительно это не поймете. Маршрутизация является ключом к пониманию рельсов!

Для простого контроллера, подобных сеансам, проще просто указать маршрут log_out, а затем ссылку на log_out_url ..

(надеюсь, что имеет смысл, лишение сна ползет!)

8
ответ дан 5 December 2019 в 18:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: