我一直致力于在rails上学习ruby并构建Web应用程序。现在我很好奇我如何在rails中使数据用户特定。我知道我可以使用Devise进行身份验证。这样用户就可以登录,注销,注册等等。然后,对于任何类型的授权,您可以使用CanCan之类的东西。但是,我有兴趣了解如何根据每个用户分离数据。例如,如果我有一个用户添加新任务,则它特定于其页面。另一个用户将能够登录并查看不同的任务集。
答案 0 :(得分:0)
检查完宝石并知道如何设置能力等级后,基本设置如下
can :update, Task, user_id: @user.id
can :read, Task, user_id: @user.id
can :destroy, Task, user_id: @user.id
上面的代码含义如果任务的user_id与current_user.id 和this link about defining ability in cancancan
相同,则可以编辑/读取/销毁答案 1 :(得分:0)
如果您正在使用Rails讨论multi-tenancy,请查看apartment。当你有大量的资源(模型)需要为你的应用程序的各种独立租户配置时,这当然必须完成。例如。各种公司'管理员登录通用作业门户。否则,通过在所有多租户资源查询之前使用额外检查,可以毫不费力地实现。同样,只有当我正确理解您的要求时,这一切才有效。
答案 2 :(得分:0)
Devise提供变量current_user
。可以引用与User
模型相关的任何关系。例如,如果用户has_many :tasks
,您可以在控制器和视图中按current_user.tasks
引用每个用户的特定任务。