我有一个运行Rails 3.2.6和Devise 2.1.2的Rails应用程序,我希望能够将并发登录限制为1.我尝试使用Devise Security Extension,但继续为unique_session_id获取未定义的方法。 / p>
相反,我想看看我是否可以覆盖Devise的行为,如本文所述:devise limit one session per user at a time
我理解它是如何工作的,我已经生成了一个会话控制器,但我不知道如何强制该应用程序将其用作Devise的覆盖。我还应该在控制器中继承应用程序控制器还是设计控制器?
现在一切都在位,但应用程序没有写一个login_token告诉我我没有正确使用控制器或其他可能不对。
感谢任何帮助。
答案 0 :(得分:0)
我强烈建议您查看Devise Wiki。有可能在做这样的事情时,可以在那里找到答案。您的新控制器将需要继承Devise会话控制器:
class MySessionsController < Devise::SessionsController
这样,任何你没有专门覆盖的方法仍然会被调用,因此不会破坏其他功能。
为了确保Devise使用您的控制器而不是自己的控制器,请在devise_for
中进行routes.rb
调用,如下所示:
devise_for :users, :controllers => { :sessions => "my_sessions" }
从那里Devise将拿起你的控制器。为了确保在那里重新启动服务器可能是个好主意。