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

标签 ruby-on-rails devise ruby-on-rails-plugins

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

来自 gradual engagement , 我的意思是

"Don't make the user sign in until she absolutely has to, but let her play around and be remembered on the site"



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

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

  1. Create users that are only "rememberable"
  2. When certain pages are accessed, require that these users have more data on them, like a username and password, via something like "before_filter :authenticate_user!" in the appropriate controllers.


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

最佳答案

我认为你给我们的文章的重点是说:

  • 仅在必要时要求注册。

  • 这是什么意思?

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

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

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

    在您的代码中,如果您有一个名为 checkout 的操作,只需在您的 Controller 中设置 before_filter authenticate_user!, :only => [:checkout]
    但也许您有一些限制,例如无需注册即可保留用户的昵称?

    关于ruby-on-rails - 如何使用 Devise 和 Rails 3 实现渐进式参与?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4718673/

    相关文章:

    ruby-on-rails - 限制作为可标记行为的标签数量

    javascript - 在 Rails 应用程序上无法看到我使用 google map 添加的位置的 map

    ruby-on-rails - Savon 忽略 namespace_identifier 属性

    ruby-on-rails - 设计不适用于 Rails 4.0rc1

    ruby-on-rails - 如何通过设计和更新绕过辞职

    ruby-on-rails - Rails 插件 - 安装为插件或安装为 Gem

    ruby-on-rails - 使用 Devise 设置 Beta 版注册

    ruby-on-rails - jira-ruby gem 限制返回问题的数量?

    ruby-on-rails - AREL 代表什么?

    iphone - 为现有的 Rails 应用程序创建 iphone 和 android 应用程序