Ruby on rails Rails:跟踪用户';身份证

Ruby on rails Rails:跟踪用户';身份证,ruby-on-rails,session,login,session-management,Ruby On Rails,Session,Login,Session Management,在我的Rails应用程序中,我有一个登录页面。该用户登录后,我的应用程序继续跟踪已登录用户的最佳方式是什么。例如,如果用户移动到不同的页面,我的控制器/操作将失去对该用户的跟踪,除非我在用户随后访问的每个页面之间不断传递变量。有更好的方法吗?我应该使用sessions变量吗?是的,sessions正是您想要的 session["user_id"] = user_id 以及在另一个页面上获取当前用户(如果您的模型称为用户): 强烈地考虑一个插件来管理这个。 有几种,例如 这提供了当前用户和登录功

在我的Rails应用程序中,我有一个登录页面。该用户登录后,我的应用程序继续跟踪已登录用户的最佳方式是什么。例如,如果用户移动到不同的页面,我的控制器/操作将失去对该用户的跟踪,除非我在用户随后访问的每个页面之间不断传递变量。有更好的方法吗?我应该使用
sessions
变量吗?

是的,sessions正是您想要的

session["user_id"] = user_id
以及在另一个页面上获取当前用户(如果您的模型称为用户):


强烈地考虑一个插件来管理这个。

有几种,例如


这提供了
当前用户
登录
功能。

有一些伟大的宝石可以做到这一点


请记住,如果您使用的是基于cookie的会话,这是rails 2.1+中的默认设置,我认为可以将此数据更改为登录的交换机。实际上,cookie具有基于应用程序密钥的SHA512指纹,确保不会篡改数据。但是,这意味着cookie内容在客户端可用,因此除非更改为服务器端存储,否则应避免存储敏感数据(密码等)。
@current_user = User.find(session["user_id]")