有什么简单的方法可以挂钩到Devise,以便我可以区分以下事件:1。注册,2。登录
我只需要知道如何为Devise挂钩。我还没有找到我正在寻找的东西 - 干净,最小化,控制器级别的实现。以下是我尝试过的一些选项:
创建自定义控制器(如https://github.com/plataformatec/devise#configuring-controllers中所述)。我宁愿不使用它,因为它有很多工作,很脆弱和重复。
使用模型回调。我宁愿不走这条路。我希望这是控制器级代码。我的意思是,至少,我希望访问控制器环境。在我看来,这是一个控制器的责任。我希望这是可以测试的,而不必处理模型。
在我的应用的ApplicationController中覆盖sign_in
。问题?这种方法无法区分注册和登录。(如果这不准确,请纠正我?)我在略读Devise registrations_controller.rb和sessions_controller.rb之后说这个 - 他们的create
方法都是致电sign_in
。
我的具体应用是:(a)向管理员发送电子邮件通知,以及(b)对后端分析服务进行API调用。请注意,模型职责都不是 - 这些是控制器级(应用程序级)职责。
更新2012-10-16:我问的是Devise项目是否可以为sign_up添加新的钩子:https://github.com/plataformatec/devise/issues/2104
2012-10-16更新:我从这个问题中删除了“退出”,因为这很容易勾勒出来。
答案 0 :(得分:0)
感谢来自https://github.com/pootsbook和https://github.com/rubynortheast的拉取请求,Devise的主分支现在支持sign_up和sign_out的单独挂钩。所以我认为它会进入下一个版本,也许是2.1.3。
请参阅: