凤凰控制器 - 单数还是复数?

时间:2016-03-09 03:34:04

标签: elixir phoenix-framework

我知道Rails有一个非常可靠的约定,它有多个控制器名称ex:CustomersController。 Elixir似乎并不关心,因为路由的完成方式不同。是否有一种惯用的方式来命名凤凰城的控制器?

2 个答案:

答案 0 :(得分:12)

为了避免因使用单数与复数而导致Rails中存在的一些混淆,凤凰城决定一致地使用单数形式。此更改已在Phoenix v0.4.0中进行。以下是对原因的解释:

  

凤凰城也没有强加单数和复数的命名规则。 Rails命名规则可能会使初学者和高级开发人员都感到困惑:模型使用单数名称,控制器使用复数名称,URL帮助程序混合使用,等等。凤凰一贯使用单一规则,就像任何其他Elixir代码一样。 您可以为表和路由器路径使用多个名称,但这些名称是在您的系统边界明确写入的。

为了您的方便,我加了最重要的部分。如果您希望看到有关做出这些决定的一些讨论,请查看Phoenix repo上的issue

答案 1 :(得分:3)

凤凰城的控制器,模型和视图都是独一无二的。因此,对于客户示例,约定为:

CustomerController CustomerView 客户

支持模型的模式和表格是复数。

迁移将使用:

create table(:customers)

架构将使用:

schema "customers"

您将单个和复数版本传递给生成器:

mix phoenix.gen.html Customer customers