如何在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左右。