在rails控制器中签署用户

时间:2016-11-30 21:05:20

标签: ruby-on-rails ruby devise

我已经创建了允许用户从我的应用中删除其帐户的功能。但是,最后,我正在尝试自动记录用户OUT,这会将他们发送回登录页面。

我尝试了各种我认为可行的方法,但是我的控制器抛出一个错误,说我没有控制器方法的视图:

  

缺少模板订阅/ 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

如何自动登录用户,因为他们实际上不再拥有任何帐户数据?

2 个答案:

答案 0 :(得分:0)

def cancel_subscription
  #code to cancel
  sign_out current_user
  redirect_to new_user_session_path
end

cancel_subscription

答案 1 :(得分:0)

这个答案是否有助于您的情况:Sign out a devise session from custom controller action (Rails)

设计提供了sign_out方法。一旦您将用户签名,您就可以使用有效模板(root等)将其重定向到正确的操作。

希望有所帮助。