【问题标题】:How to program user preferences如何编程用户偏好
【发布时间】:2010-09-07 04:08:54
【问题描述】:

我将 Ruby on Rails 用于内部站点。该网站的不同用户可以访问各种各样的数据和高度不同的数据观点。在这些不同类别的用户中,需要有访问级别。在访问级别内,我需要能够添加其他用户类别的功能。

在已发布的“1.0 版”的内网站点中,我实现了用户的一般类。我现在需要对用户访问进行更细粒度的控制。

问题是怎么做的?

在不扩展数据库架构并使用 填充视图代码的情况下,对用户偏好进行编码(显示(或不显示)地图;访问此功能,但不是此功能)的普遍接受做法是什么到处都是标签。

【问题讨论】:

    标签: ruby-on-rails ruby user-controls user-interface


    【解决方案1】:

    另一种完全不同的方法是使用acts_as_authenticated 和授权插件。这些表将由插件(即usersrolesroles_users)构建。来自文档:

    授权插件提供以下功能:

    • 在类或实例方法中检查授权的简单方法 使用#permit 和#permit 级别?

    • 使用角色为整个应用程序、模型类或 模型的实例(即特定对象)。

    • 一些类似于英语的动态方法,它们利用已定义的角色。你会 能够使用“user.is_fan_of angelina”或“angelina.has_fans?”等方法, 其中“粉丝”仅在角色表中定义。

    • 根据您所需的数据库复杂性级别挑选一个 mixin。为了 所有功能,您将需要使用“对象角色表”(见下文)

    【讨论】:

      【解决方案2】:

      用 标签无处不在。

      我认为你不想这样做。假设建议的替代方案都不可行,至少您应该考虑将这些检查转移到您的控制器中,在那里您可以将它们重构为 before_filter。

      请参阅“使用 Rails 进行敏捷 Web 开发”中的第 11.3 节(我的第 2 版副本中的第 158 页),他们正是这样做的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-30
        • 2011-04-11
        • 2022-10-04
        • 1970-01-01
        • 1970-01-01
        • 2011-10-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多