繁体   English   中英

在Destroy_User_Session_Path之前设计动作

[英]Devise Action Before Destroy_User_Session_Path

当用户单击“注销”时,我的应用程序正在运行destroy_user_session_path,并且效果很好。 但是,在destroy_user_session_path发生之前,我需要从我的carts_controller中运行destroy方法。 单击注销按钮时,执行这两项操作的最佳方法是什么? (我在应用程序中找不到设计控制器或会话控制器)

application.html.erb-销毁注销按钮的调用

<%= link_to "Logout", destroy_user_session_path, method: :delete, :class => 'navbar-link boldLinks btn btn-primary'  %>

carts / show.html.erb-单击一个按钮后销毁之前需要移除/清空购物车的调用

<%= link_to 'Empty Cart', @cart, method: :delete, data: {confirm: 'Are you sure you want to empty your cart?'}, :class => 'btn btn-danger whiteText' %>

我认为您可以通过这种方式扩展设计SessionsController。

编辑答案:

创建子类的devise会话控制器,首先在route.rb中告诉Devise您想使用自己的会话控制器:

devise_for :users, controllers: { sessions: 'users/sessions' }

并在控制器中创建一个文件,例如sessions_controller.rb

class Users::SessionsController < Devise::SessionsController

  before_action :destroy_cart, only: :destroy

  def destroy_cart
    # your command here
  end
end

此链接是我们要使用的类

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM