- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试在我的实用程序中设置渐进式参与,人们无需注册即可使用,例如notepad.cc 和 jsfiddle.net 以及我计划在用户“写入”应用程序时为用户创建一个 guest 用户(使用 Devise)。
我在 Devise wiki 上找到了这个指南 https://github.com/plataformatec/devise/wiki/How-To:-Create-a-guest-user它显示了如何在浏览器 session 期间创建访客用户。我想要的是用户在后续访问中继续使用相同的访客帐户,直到他注册为止,也许当我推出更多功能的订阅计划时。
如何修改指南中的内容以实现此目的?
上面链接的指南中的代码:
# file: app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
# if user is logged in, return current_user, else return guest_user
def current_or_guest_user
if current_user
if session[:guest_user_id]
logging_in
guest_user.destroy
session[:guest_user_id] = nil
end
current_user
else
guest_user
end
end
# find guest_user object associated with the current session,
# creating one as needed
def guest_user
User.find(session[:guest_user_id].nil? ? session[:guest_user_id] = create_guest_user.id : session[:guest_user_id])
end
# called (once) when the user logs in, insert any code your application needs
# to hand off from guest_user to current_user.
def logging_in
end
private
def create_guest_user
u = User.create(:name => "guest", :email => "guest_#{Time.now.to_i}#{rand(99)}@email_address.com")
u.save(false)
u
end
end
并在 Controller 中使用它:
@thing.user = current_or_guest_user
@thing.save
最佳答案
在剃了一些牦牛毛之后,我设法让它开始工作。这是工作代码:
class ApplicationController < ActionController::Base
protect_from_forgery
# if user is logged in, return current_user, else return guest_user
def current_or_guest_user
if current_user
if cookies[:uuid]
logging_in # Look at this method to see how handing over works
guest_user.destroy # Stuff have been handed over. Guest isn't needed anymore.
cookies.delete :uuid # The cookie is also irrelevant now
end
current_user
else
guest_user
end
end
# find guest_user object associated with the current session,
# creating one as needed
def guest_user
User.find_by_lazy_id(cookies[:uuid].nil? ? create_guest_user.lazy_id : cookies[:uuid])
end
# called (once) when the user logs in, insert any code your application needs
# to hand off from guest_user to current_user.
def logging_in
# What should be done here is take all that belongs to user with lazy_id matching current_user's uuid cookie... then associate them with current_user
end
private
def create_guest_user
uuid = rand(36**64).to_s(36)
temp_email = "guest_#{uuid}@email_address.com"
u = User.create(:email => temp_email, :lazy_id => uuid)
u.save(:validate => false)
cookies[:uuid] = { :value => uuid, :path => '/', :expires => 5.years.from_now }
u
end
end
如果您能告诉我更好的方法,我会接受另一个答案。
关于ruby-on-rails - 逐步参与,持续的 guest 用户与 Devise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8267230/
我想从另一个来ping一个vmware guest虚拟机。两者都是Windows XP并使用NAT。我将VMnet8的IP手动设置为192.168.18.1。 (不使用自动获取IP地址)。另外,我无法
我有一台 Windows 服务器,其 AD 通过 AD 连接同步到 Azure AD,用户正在使用 O365。然后,该租户中的某些帐户会作为 guest 帐户被邀请到另一个租户。 当我从 AD 中删除
我已经在 VPS Debian Linux 机器上安装了最新版本的 RabbitMQ。尝试通过访客/访客登录,但返回消息登录失败。我做了一些研究,发现出于安全原因,禁止通过访客/访客远程登录。 我还尝
情况是我尝试在IE8(Win 7 guest 操作系统)中测试网页,由于某种原因我在js ajax中使用的开发环境中使用了很多“http://localhost:8000” url,所以我无法通过知识
我在 VirtualBox 中使用 Ubuntu 18.04,在安装 guest 添加后,我可以在 virtualbox-guest-dkms 和 virtualbox-guest-dkms-hwe
除了一个问题,我刚刚让运行 CentOS 的 guest 盒完美运行。我正在尝试挂载共享文件夹。我已按照使用此代码获取共享文件夹“可安装”的说明进行操作: VBoxManage sharedfolde
我正在尝试将内容从主机复制到 guest 计算机,但为了复制,我需要安装 guest 附加磁盘。 或者还有其他方法可以访问 guest 计算机上的主机内容,反之亦然? 最佳答案 从 VirtualBo
在为 Web 应用程序用例图建模时,为用户可以拥有的每个角色创建一个角色是否更好?或拥有一个角色、用户和一个具有特权的矩阵? guest < 用户 < 版主 < 管理员 1: guest 、用户、版主
我正在尝试将内容从主机复制到来宾计算机,但要进行复制,我需要安装来宾添加磁盘。。或者,是否有其他方法可以访问来宾计算机上的主机内容,反之亦然?
关于如何解决该错误的任何想法: 在不支持的计算机上尝试了特定于 guest 的操作准备好与客人沟通。这不应该发生并且是一个错误应该报告。 vagrant up 之后? 最佳答案 如果您尝试在 Wind
我正在尝试使用 Virtual Box、Virtual Box Guest Additions 和 Vagrant 运行 Linux VM,并在我的 Windows 7 机器上安装一个文件夹。我已经尝
首先,使用 QEMU Virtual Machine (Debian Sparc64 Etch 4.0) ,我能够成功地从 Guest 到 Host ( ssh ) 获取 scp 和 MacOS Hi
我正在尝试将 KVM guest (Ubuntu 18.04)添加到本地网络,就像网络中的其他真实服务器一样。我在主机系统(Ubuntu 18.04)中配置了 KVM 桥接接口(interface),
当我使用这个命令时: vagrant up 我得到这个错误: [machine1] GuestAdditions versions on your host (4.3.36) and guest (5
我在我的主机上本地运行 MySQL,并且由于原因™我无法在我的 Vagrant 机器内运行它。我知道有一种方法可以通过 iptables 将所有流量转发到 3306 到主机的 IP 地址和端口来解决这
我已经在两台机器A和B之间建立了rabbitMQ联合,双向, 但是有错误 {auth_failure,"ACCESS_REFUSED - 使用身份验证机制 PLAIN 拒绝登录。有关详细信息,请参阅代
我有一个 Web 项目 GUI.. 我最初只与管理员一起工作。 因此,当管理员使用他的用户名和密码登录时,我使用表单例份验证将他重定向到默认页面“Default.aspx”。 但现在我还必须与 gue
我正在开展一个项目,我必须验证适用于英特尔凌动处理器和 Windows 7 操作系统的平台。 我用过: ManagementClass mgmt = new ManagementClass("Win3
我必须处理这个非常可怕的旧 python 项目,它只能在 Windows xp VM 中运行。有没有办法在主机中使用 pycharm 并连接到 guest 中的解释器(顺便说一句,这是 python
我有一个 PHP 项目,本质上是一家公司的订单处理网站。公司中的每个用户都可以访问该网站,并获得应用程序的特定凭据,以控制对页面和功能的访问。 现在我有一个允许访客访问单个页面的请求。这个请求的复杂点
我是一名优秀的程序员,十分优秀!