1

有哪些简单的方法可以连接到 Devise,以便我可以区分以下事件:1. 注册,2. 登录

我只需要知道如何为此连接到设计。我还没有找到我正在寻找的东西——一个干净的、最小的、控制器级的实现。以下是我尝试过的一些选项:

  1. 创建一个自定义控制器(如https://github.com/plataformatec/devise#configuring-controllers所述)。我宁愿不使用它,因为它需要大量工作、脆弱且重复。

  2. 使用模型回调。我宁愿不走这条路。我希望这是控制器级代码。我的意思是,至少,我想要访问控制器环境。在我看来,这是控制器的责任。我希望这是可测试的,而不必处理模型。

  3. sign_in在我的应用程序的 ApplicationController 中覆盖。问题?这种方法无法区分注册和登录。(如果这不准确,请纠正我?)我在浏览了 Devise registrations_controller.rb 和 session_controller.rb 后说这两个create方法调用sign_in

我的具体应用是:(a) 向管理员发送电子邮件通知和 (b) 对后端分析服务进行 API 调用。请注意,这两者都不是模型职责——这些都是控制器级别(应用程序级别)的职责。

2012-10-16 更新:我在问 Devise 项目是否愿意为 sign_up 添加一个新的钩子:https ://github.com/plataformatec/devise/issues/2104

2012 年 10 月 16 日更新:我从这个问题中删除了“退出”,因为这很容易挂钩。

4

1 回答 1

0

感谢来自https://github.com/pootsbookhttps://github.com/rubynortheast的拉取请求,Devise 的主分支现在支持 sign_up 和 sign_out 的单独挂钩。所以我认为它将进入下一个版本,也许是 2.1.3。

看:

于 2012-11-05T07:42:08.197 回答