以Rails的单数形式命名控制器的缺点是什么



我知道在Rails中我们遵循惯例。我们应该用复数形式命名控制器。最近,我聘请了一位自由职业者来帮助我完成Rails应用程序的一部分,因为我对这个框架和ruby真的很陌生。我有一个PortfolioController——这感觉很好,因为公文包是一个条目的容器(谁说"我有公文包"?)。自由职业者说这是不对的,我会遇到不遵守惯例的麻烦,并将其重命名为PortfoliosController。我问了好几次,如果我把控制器命名为PortfolioController而不是PortfoliosController,我会遇到什么确切的问题,除了"你会有问题"之外,我没有得到任何解释。

那么,有人能告诉我这些问题是什么吗?

最简单的原因是,其他参与该项目的人在编写代码时可能会用复数形式引用它,然后在"WTF?"的未指定时间段后,当他们试图找出自己做错了什么时,必须意识到"哦,他们决定不在那个控制器中遵循惯例"。同样,从语义上讲,您的控制器是Portfolio表中所有Portfolio的控制器。

代码方面,您将遇到路由问题。您将不得不制定一系列非标准路由,因为默认情况下http://my_app/portfolios会转到控制器的index操作。然后显示一个带有http://my_app/portfolios/1的特定公文包,该公文包将显示带有1id的公文包。因此,请准备在config/routes.rb文件中创建和维护大量自定义路由。对于名称相同的东西,无论是复数还是单数,你都会看到类似的问题,比如equipment,你可以有一台设备或多台设备。请参阅:当型号单数和复数名称相同时(例如设备、物种),轨道连接路径和路由错误。它不仅会使您的路由不稳定,还会在portfolio_pathportfolio_url等方法中引发冲突。

相关内容

  • 没有找到相关文章

最新更新