在命名空间内组织rails控制器

时间:2013-09-19 05:20:09

标签: ruby-on-rails ruby namespaces ruby-on-rails-4

我对rails控制器的代码组织有一个相当简单的问题:

如果我们有一个应用程序商店平台(即Google Play),其中包括开发人员(他们创建/上传应用程序),管理员(审核和批准应用程序)和用户(通过商店消费应用程序)。

开发人员通过开发人员平台完成所有工作,因此让开发人员命名空间对相关项进行分组是有意义的。对于管理员来说,相同的逻辑似乎是有意义的,在管理员命名空间下给他们一个管理面板。

现在问题是 - 我有两个名称空间,AdminDeveloper - 如果开发人员可以将应用的状态从:草稿更改为:待定(供审核),管理员可以更改状态从挂起到:approved /:rejected,建议存放apps_controller.rb的位置在哪里?

似乎有三种方法可以解决这个问题,而且由于实际原因或传统原因,我不太确定哪种方法最“正确”。

我能想到的三个选项是:

1)Admin& Developer命名空间(并从developer :: apps填充商店)?

2)仅限于Developers命名空间

3)apps_controller不应该位于任何名称空间中。

1 个答案:

答案 0 :(得分:0)

不用担心,你在OO世界。

两种设计:

  1. 制作一般的AppsController但没有路由到它。管理员和开发人员的应用程序控制器将继承此项,并在必要时进行覆盖。

  2. 创建一个模块并将其包含在Admin的AppsController和Developer's中,必要时覆盖。

  3. 如果没有详细的用例,很难说哪个更好,尽管我更喜欢#1。