使用Rails Devise禁用特定控制器操作的用户超时

时间:2015-12-14 16:36:28

标签: ruby-on-rails ruby devise

我在我的Rails网站上有一个由用户监控的特定网址。它使用WebSocket连接来保持更新,但可以长时间等待数据。我目前使用Devise Gem进行用户登录控制。我可以禁用此特定网址的用户超时吗?

谢谢

1 个答案:

答案 0 :(得分:1)

我没有对此进行过测试,因此我无法确认它是否可行但您可以轻松试用。

User模型添加属性,例如prevent_timeout。然后,在您正在讨论的特定控制器和操作中,抓住current_user并将其设置为true。您还应该添加一个before_filter to your ApplicationController,将prevent_timeout设置为false,以确保在用户离开您的特殊网址后,它始终会被设置为false。最后,使用dynamic timeout feature设计来检查self.user prevent_timeout是否设置为true。如果是true,则将超时设置为一年(基本上不会超时)。否则,请将其设置为默认值。