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