Rails控制器 - 合并与否?

时间:2017-02-01 12:16:32

标签: ruby-on-rails controller structure

我有一个应用程序,有多种方式可以使用不同的资源。例如:

对于项目:

  • 客户可以创建,查看,编辑和取消他们的项目
  • 管理员可以查看,编辑和进行其他更改(例如更改 状态和编辑隐藏字段)
  • 供应商可以查看项目并添加以前的项目 客户到他们的投资组合

对于目录结构,我原本打算在3个独立的控制器下创建这些控制器:“客户/项目”,“管理员/项目”和“供应商/项目”。但我现在正在考虑 - 我是否应该将所有这些结合起来而不是在控制器中放置条件逻辑来改变每种类型的用户可以看到或做的事情?

我担心授权(我知道我可以使用Pundit来解决这个问题吗?)但也有关于使一个控制器复杂化的问题!在这样的场景中,最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

我选择将它们分开,主要原因是围观。虽然您可以使用一个控制器合并资源,并使用CanCanCan或Pundit管理授权,但每个控制器的视图将是众多且唯一的(例如:不同的索引操作,基于相应的创建和更新操作的不同project_params)。将这一切都放在一个控制器中就是狗展!