2016-11-30 2 views
1

Я создал функцию, позволяющую пользователю удалять свою учетную запись из моего приложения, которое работает. Однако, в конце, я пытаюсь автоматически регистрировать пользователя OUT, который отправит их обратно на страницу входа.Выйти из контроллера rails

Я пробовал различные вещи, которые я думал, что буду работать, но мой контроллер бросает ошибку о том, что у меня нет мнения на месте для метода контроллера:

Исчез подписку шаблона/cancel_subscription

def cancel_subscription 
...a bunch of code that clears out the user's info 
redirect_to destroy_user_session_path  
end 

Я использую Devise, поэтому маршруты по умолчанию:

new_user_session GET /login(.:format)  devise/sessions#new 
user_session POST /login(.:format)   devise/sessions#create 
destroy_user_session GET /logout(.:format) devise/sessions#destroy 

Как я могу автоматически регистрировать пользователя, поскольку на самом деле у них нет данных учетной записи?

ответ

0
def cancel_subscription 
    #code to cancel 
    sign_out current_user 
    redirect_to new_user_session_path 
end 

cancel_subscription внутри

+0

Итак, это все еще вызывает ошибку, что вид не существует. – Godzilla74

+0

Возможно, вы захотите «redirect_to root_url» в конце 'cancel_subscription'. – Eric

+0

@ Godzilla74 Я немного обновил его. – Sunny

0

ли пригодился этот ответ с вашей ситуации: Sign out a devise session from custom controller action (Rails)

Существует В sign_out метод, предоставляемый от завещанию. После того, как вы подпишете пользователя, вы можете перенаправить их на правильное действие с допустимым шаблоном (root и т. Д.).

Надеюсь, что это поможет.

Смежные вопросы