我有一个具有 2 个角色的 Rails 应用程序,比如管理员和用户。但问题是,管理员不使用像 ActiveAdmin 这样的后端。我希望管理员和用户都看到相同的视图,但根据角色,我限制他们可以看到的内容。我正在使用 Cancan,但是由于例如管理员和用户都可以看到产品页面,因此我最终在视图和控制器操作中出现了许多条件,例如,如果这是管理员显示,则显示,而不是显示。
所以我真的不认为这是“Rails 方式”。我最终得到了许多重复的代码,并且视图内的代码并不真正支持使逻辑远离视图的想法。
所以我的问题是,实现具有许多角色但视图相同的场景的最佳方法是什么。
谢谢你。
我目前正在考虑两种选择,但我都不喜欢。一种是将管理员重定向到另一个视图,但这样大部分视图都是相同的,因此它根本不是 DRY。选项 2 是使用完全相同的视图,但在视图中添加了许多条件,因此我最终得到了一个带有代码的巨大复杂视图。我正在尝试找到一种方法,让事情保持干燥但简单,并保持视图代码免费。