我们在我们的应用程序上使用Devise gem,并想知道我们如何在gem的过程中添加一个Contract接受。
由于Devise没有这样做,我们想到了2个解决方案,一个干净,一个有点脏。
当用户登录时,他会被临时重定向到EULA页面(使用Devise的@resource)。如果接受,则登录成功并且用户输入应用程序,如果被拒绝,则用户将被卡在登录页面中。
当用户登录时,他进入应用程序并拥有他应该接受的EULA页面。然后我们将标志传递给“是”或“否”,这取决于他是否接受。如果没有,他将被重定向到登录页面。
第二个解决方案是最简单的解决方案,但我觉得它有点不安全(也许服务器负载无用?)。
第一个会更好,但我们找不到任何文档,提示帮助我们这样做,我们陷入其中。
有没有人开发类似的东西?什么是最佳做法?
谢谢!
答案 0 :(得分:2)
我认为您的第二个选项更干净:在您的用户表格中创建一个bool字段并检查(在登录时或在每个请求中 - > before_filter)并重定向(如果未设置)。这样,如果您更改了eula并且用户必须重新接受它,您可以清除users表中的所有bool标志以强制您的用户接受新版本。