如何在Rails 3 + Devise中创建访客用户

目前我有一个带有设计的rails 3 app。 它要求用户注册/登录访问。

我想启用访客用户。 因此,当用户访问某些视图时,为该用户创建访客用户帐户,然后如果/当他们认证/注册该访客用户然后升级到普通用户时。

将应用程序视为聊天室。 我希望访客用户能够加入聊天室,然后oauth进入twitter进行注册。 但我不想在加入之前强制用户注册。

建议?

我发现了这个: https : //github.com/plataformatec/devise/wiki/How-To : -Create-a-guest-user

问题是我添加了帮助程序,但不了解如何启动current_or_guest_user。 还不确定如何启动每个特定的允许视图?

有任何想法吗? 指针? 谢谢

另一种更透明的方式是:

def current_user super || guest_user end private def guest_user User.find(session[:guest_user_id].nil? ? session[:guest_user_id] = create_guest_user.id : session[:guest_user_id]) end def create_guest_user u = User.create(:name => "guest", :email => "guest_#{Time.now.to_i}#{rand(99)}@example.com") u.save(:validate => false) u end 

在关注wiki之后,只需用current_or_guest_user替换对current_user调用

就视图而言,使用before_filter在控制器中执行此操作。

没有看到你的任何代码很难猜测,但在伪代码中它会是这样的

 class ChatController < ApplicationController before_filter authenticate_user!, :except => [:join] #this will force users to log in except for the join action def join chat_handle = current_or_guest_user.handle # some more code... end 

检查这个rails关于来宾用户。 关于Devise的详细信息大约在5:40左右。