如何使用 Devise 和 Rails 3 实现渐进式参与?

jai*_*ime 5 ruby-on-rails ruby-on-rails-plugins devise

我正在尝试使用 Devise + Rails 实现延迟注册(又名延迟身份验证,又名渐进式参与)网站流程。

通过逐步参与,我的意思是

“在用户绝对必须登录之前不要让她登录,而要让她玩转并在网站上被记住”

我正在寻找一种简单的方法来使用devise来做到这一点。我觉得这是许多其他人不得不做的事情,但我还没有找到关于它的文档。

以下方法在我的脑海中听起来不错,所以我将开始:

  1. 创建仅“可记住”的用户
  2. 当访问某些页面时,要求这些用户有更多的数据,比如用户名和密码,通过类似“before_filter :authenticate_user!”之类的东西。在适当的控制器中。

这种方法有意义吗?有没有更好的?您是否愿意分享使用 Devise + Rails 的渐进式参与方法来注册/注册表格?

Pas*_*sta 2

我认为您给我们的文章的要点是:

  • 仅在必要时要求注册。

这是什么意思?

让我们举个例子。您是一个电子商务网站。

客户什么时候必须“最后”注册?结账时。从未。因此您不必存储或记住有关用户的任何信息。这里从来没有使用过 Devise。

如何管理未登录/注册用户的购物车?我会说数据库,以会话 ID 作为主键。或者您可以将所有项目 ID 存储在 cookie 中,以供以后使用。

在您的代码中,如果您有一个名为 的操作checkout,只需在控制器中设置before_filter authenticate_user!, :only => [:checkout]

但也许您有一些限制,例如能够保留用户的昵称而不注册他?