2

我对 如何自定义设计以在会话中存储更多信息有同样的问题?

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

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

4

2 回答 2

2

如果您不希望它访问数据库,那么不要使用一个来存储您的会话。相反,将会话存储在内存中。为此,您有几个选项,例如使用Dalli gem的 memcached或使用redis-store gem的 redis 。这些不是唯一的宝石选择,但它们很受欢迎。我鼓励你去探索还有什么,看看有什么适合你的。

于 2012-05-16T12:51:55.910 回答
2

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

def current_user_id
  session[:user_id] = session[:user_id] || current_user.id
end
于 2012-12-12T09:48:27.503 回答