设计/康康模拟账户

时间:2011-04-13 00:56:23

标签: ruby-on-rails devise cancan

我正在为我的应用程序使用设计/ cancan,一切都很合理 - 只要用户创建了一个帐户并登录。

我想做的是允许用户在不创建帐户的情况下开始使用。然后注册,如果他们想要实际保存他们的工作。

以前有人遇到过这个吗?我应该弄清楚如何用设计创建虚拟账户?或允许未经授权的用户通过CanCan访问我的应用程序中创建模型?

我可以详细介绍一下我是如何考虑接近这一点的,但感觉就像一个非常明显的用例,有人提出了一个很好的解决方案。

提前致谢, 麦克

2 个答案:

答案 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,因为如果他们想要保存数据,他们会创建一个帐户。