gpt4 book ai didi

ruby-on-rails - Rails 应用程序中的 guest 用户功能,在 session 中设计 + 存储

转载 作者:行者123 更新时间:2023-12-04 16:50:01 24 4
gpt4 key购买 nike

我希望用户无需创建帐户即可使用我的应用程序的某些功能 - 非常标准。例如,我有一个列表制作功能,用户可以在其中创建列表并向其中添加项目。我在我的 Controller 和 View 中经常使用 current_user 来做这种事情,每当非用户尝试时,它都会抛出各种错误。我知道 Devise 可以通过在 session 中存储用户属性然后用 cookie 记住来处理这个问题,对吗?我的问题是:如何在 session 中存储 current_user 属性?我已经在这个和 SO 上搜索过类似问题的文档,但运气不佳。如果已经解决了这个问题(我确定它已经解决了,在某个地方),请随时指导我找到一个好的资源。这是我的用户模型:

class User < ActiveRecord::Base

devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end

如果我可以澄清我正在尝试做的事情,请告诉我,在此先感谢!

最佳答案

我理解你的担忧。当许多功能依赖于它时,错过 current_user 是不方便的。

第一步是在任何情况下创建一个 current_user。

class ApplicationController

def current_user
super || User.new
end

end

通过此设置,当 Devise 中没有可用的 current_user 时,您会自动为该访问者创建一个新的 User 实例。

第二步,你现在可以像往常一样把current_user的信息存入session中了。我不是 session 的忠实粉丝,但当你真正需要它时它仍然有用。

关于ruby-on-rails - Rails 应用程序中的 guest 用户功能,在 session 中设计 + 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19900436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com