我正在为我的应用程序使用设计/ cancan,一切都很合理 - 只要用户创建了一个帐户并登录。
我想做的是允许用户在不创建帐户的情况下开始使用。然后注册,如果他们想要实际保存他们的工作。
以前有人遇到过这个吗?我应该弄清楚如何用设计创建虚拟账户?或允许未经授权的用户通过CanCan访问我的应用程序中创建模型?
我可以详细介绍一下我是如何考虑接近这一点的,但感觉就像一个非常明显的用例,有人提出了一个很好的解决方案。
提前致谢, 麦克
答案 0 :(得分:1)
如果您创建虚拟帐户,则必须通过cookie以某种方式跟踪用户并缓存数据库中该cookie中的值。 Cancan通过能力模型允许访客帐户。例如:
user ||= User.new # Guest user, for users who are not registered or don't have an account yet
对于您开始为非注册用户应用权限,这就足够了。但请注意,仅通过cookie进行跟踪不是非常可靠,并且可能导致某种类型的安全隐患(即通过cookie劫持)。用户,有一天,也可以决定清除他的饼干。
如果需要,我建议让用户与访客帐户进行最小程度的互动,并尽可能激励用户注册/注册Devise。
希望有所帮助!
答案 1 :(得分:0)
我实际上正在考虑同样的问题,我有一个制作日历的计划应用程序。为了克服这个问题,我在想你使用
user ||= User.new
如上所述,并且在用户创建帐户后使用cookie将数据传输到数据库。 这意味着您不必担心清除cookie,因为如果他们想要保存数据,他们会创建一个帐户。