关于 rails 控制器的代码组织,我有一个相当简单的问题:
如果我们有一个应用商店平台(即 Google Play),它由开发人员(他们创建/上传应用程序)、管理员(审查和批准应用程序)和用户(通过商店使用应用程序)组成。
开发人员通过开发人员平台做所有事情,因此有一个开发人员命名空间来对相关项目进行分组是有意义的。同样的逻辑对管理员来说似乎是有意义的,在管理员命名空间下给他们一个管理面板。
现在问题来了 - 我有两个命名空间,Admin
并且Developer
- 如果开发人员可以将应用程序的状态从 :draft 更改为 :pending (供审核),并且管理员可以将状态从 pending 更改为 :approved/:rejected,那么推荐存储apps_controller.rb的地方?
似乎有三种方法可以处理这个问题,我不太确定哪种方法最“正确”,无论是出于实际原因还是传统原因。
我能想到的三个选项是:
1)在Admin
&Developer
命名空间中(并从 developer::apps 填充商店)?
2) 仅在Developers
命名空间中
3) apps_controller 不应存在于任一命名空间中。