【问题标题】:Rails superuser resource contextRails 超级用户资源上下文
【发布时间】:2012-12-31 01:14:14
【问题描述】:

我正在开发的应用围绕属于组织的用户展开,并且只能访问这些组织中的资源。这很好,而且非常简单。

系统还拥有任何组织之外的用户,他们可以查看系统内的任何内容。当其中一个用户登录时,他们会得到一份他们想要查看的组织列表。选择一个之后,他们应该可以看到系统视图,就像他们以标准用户身份登录一样,但保留他们的超级用户权限。

有没有一种好方法可以让系统知道已选择特定组织,而不必为每条路径都有一个嵌套资源?

例如,我想以超级用户身份登录,并查看 organizationA。我希望能够选择组织,然后简单地去

/subjects

而不必去

/organisations/1/subjects

有什么好的方法吗?

【问题讨论】:

    标签: ruby-on-rails devise cancan


    【解决方案1】:

    如果您不通过 url 传递上下文,您可以将选定的组织存储在会话中。会话方法的问题在于,您无法直接链接到这些页面,因为您依赖于会话中存储的数据。

    【讨论】:

    • 如果链接从不改变,那肯定没问题?如果登录的用户是超级用户,会话只会存储该上下文。所有其他用户实际上都属于一个组织,因此不需要会话。因此,如果链接指向 /subjects,那么无论谁登录,链接仍然只是 /subjects。那么如果作为shine admin登录,它会在会话中加载该组织的主题,但是如果一个普通用户登录,它会为他们自己的组织加载主题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多