ruby-on-rails - 在 Destroy_User_Session_Path 之前设计操作

标签 ruby-on-rails session devise cart

当用户单击“注销”时,我的应用程序正在运行 destroy_user_session_path 并且运行良好。但是,我需要在 destroy_user_session_path 发生之前从 carts_controller 运行 destroy 方法。单击注销按钮时运行这两个操作的最佳方法是什么? (我在应用程序中找不到设备 Controller 或 session Controller )

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 session Controller ,首先在routes.rb中告诉Devise您想使用自己的 session Controller :

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

并在 Controller 中创建一个文件,例如 sessions_controller.rb

class Users::SessionsController < Devise::SessionsController

  before_action :destroy_cart, only: :destroy

  def destroy_cart
    # your command here
  end
end

this link是我们要使用的类

关于ruby-on-rails - 在 Destroy_User_Session_Path 之前设计操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45196275/

相关文章:

c# - 如何使用 C# 上传文件并将其保存到流中以供进一步预览?

ruby-on-rails - 使用 Minitest 跳过 Pundit 授权

mysql - Rails 加入协会并计数

ruby-on-rails - Rails "form_for"操作,如何根据用户类型重定向到不同的路径

session - 如何在本地主机(开发模式)上使用 grails 与子域共享 session ?

php - PHP MySQL 的 session 超时问题

ruby-on-rails - 使用设备未收到确认邮件

ruby-on-rails - 为什么使用身份验证 token 而不是正常的身份验证过程?

mysql - "MySQL server has gone away"与 Ruby on Rails

ruby-on-rails - channel 。 10.3.3 Ruby on Rails 教程未定义方法 'any?'