繁体   English   中英

如何在不影响数据库的情况下在设计中使用current_user

[英]How to using current_user in devise without hitting database

我对如何自定义Devise在会话中存储更多信息有相同的疑问

什么时候使用current_useruser_signed_in? 设计助手,两者都会导致SQL查询命中数据库。 有没有一种更好的方法可以在会话中检索这些信息而无需访问数据库?

在用户登录阶段之后是否需要由我自己分配会话?

如果您不希望它访问数据库,则不要使用它来存储会话。 而是将会话存储在内存中。 您有一些选择,例如使用Dalli gem的 memcached或使用redis-store gemredis 这些不是唯一的宝石选择,但它们是受欢迎的选择。 我鼓励您探索其他地方,以找出最适合您的地方。

有时您只需要用户的:id ,在这种情况下,您可以在使用会话的应用程序控制器中编写以下方法

def current_user_id
  session[:user_id] = session[:user_id] || current_user.id
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM