我对rails控制器的代码组织有一个相当简单的问题:
如果我们有一个应用程序商店平台(即Google Play),其中包括开发人员(他们创建/上传应用程序),管理员(审核和批准应用程序)和用户(通过商店消费应用程序)。
开发人员通过开发人员平台完成所有工作,因此让开发人员命名空间对相关项进行分组是有意义的。对于管理员来说,相同的逻辑似乎是有意义的,在管理员命名空间下给他们一个管理面板。
现在问题是 - 我有两个名称空间,Admin
和Developer
- 如果开发人员可以将应用的状态从:草稿更改为:待定(供审核),管理员可以更改状态从挂起到:approved /:rejected,建议存放apps_controller.rb的位置在哪里?
似乎有三种方法可以解决这个问题,而且由于实际原因或传统原因,我不太确定哪种方法最“正确”。
我能想到的三个选项是:
1)Admin
& Developer
命名空间(并从developer :: apps填充商店)?
2)仅限于Developers
命名空间
3)apps_controller不应该位于任何名称空间中。
答案 0 :(得分:0)
不用担心,你在OO世界。
两种设计:
制作一般的AppsController但没有路由到它。管理员和开发人员的应用程序控制器将继承此项,并在必要时进行覆盖。
创建一个模块并将其包含在Admin的AppsController和Developer's中,必要时覆盖。
如果没有详细的用例,很难说哪个更好,尽管我更喜欢#1。