【问题标题】:Creating multiple dashboards for a half dozen user types in Rails在 Rails 中为六种用户类型创建多个仪表板
【发布时间】:2016-02-03 14:57:56
【问题描述】:

我正在开展一个涉及七种不同类型用户的项目。这些用户都有一个外观非常相似的仪表板。

对于每个用户来说,它们几乎完全相同,但略有不同:

  • 高级用户可以看到某些按钮
  • 表格布局包含额外的列
  • 某些与表条目相关的操作仅限于普通用户

我很想使代码更干,但在这种情况下,如果部分会使布局复杂化而不是简化它,我该如何解决这个问题?

我最初的想法是显示所有元素,但用if 语句隐藏/限制它们,制作一个,但非常注重逻辑的视图。

更广泛地说,如果 UI 会根据查看它的用户的权限级别而发生显着变化,那么用于保持事物井井有条的公认 Rails 模式是什么?

【问题讨论】:

    标签: ruby-on-rails ruby user-interface design-patterns privileges


    【解决方案1】:

    我认为Pundit 将非常适合你,如果你关心的是 DRY 和 OO :)。它真的是超级面向对象和干净的方法。

    基本上,您会将所有(通常是复杂的)授权逻辑转移到策略中,并且您的视图将如下所示(来自文档):

    <% if policy(@post).update? %>
      <%= link_to "Edit post", edit_post_path(@post) %>
    <% end %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 2020-07-27
      • 2017-04-26
      • 1970-01-01
      相关资源
      最近更新 更多