为了账号安全,请及时绑定邮箱和手机立即绑定

Rails中的单数或复数控制器和助手名称

Rails中的单数或复数控制器和助手名称

倚天杖 2019-12-17 15:06:05
对控制器和助手使用单数名称有任何不利之处吗?似乎没有任何依赖。甚至看来,助手至少在我有限的实验中,不必对单数或复数与其相应的控制器进行相同的选择。真的吗?
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

绝对是复数。


带有平稳的路由和单个控制器

控制器:


dog_controller.rb  

路线:


map.resources :dogs  # => blows up  

map.resources :dog  # is ok, but...  

dogs_path # => blows up  

dog_path  # => ok  

使用复数控制器

控制器:


dogs_controller.rb

路线:


map.resources :dogs  

dogs_path # => ok  

dog_path # => ok  

rails generate controller --help 有多个示例:


Example:

`rails generate controller CreditCards open debit credit close`


CreditCards controller with URLs like /credit_cards/debit.

    Controller: app/controllers/credit_cards_controller.rb

    Test:       test/controllers/credit_cards_controller_test.rb

    Views:      app/views/credit_cards/debit.html.erb [...]

    Helper:     app/helpers/credit_cards_helper.rb


查看完整回答
反对 回复 2019-12-17
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

为控制器使用复数名称只是一个约定。


复数名称通常听起来更自然(尤其是对于直接绑定到特定模型的控制器:用户->用户等),但是您可以使用任何名称。


至于助手,默认情况下,所有助手都可用于所有控制器,因此从技术上讲,您如何命名助手完全无关紧要。将控制器的助手功能保留在与控制器同名的助手中只是另一种约定。


查看完整回答
反对 回复 2019-12-17
?
互换的青春

TA贡献1797条经验 获得超6个赞

模型是单数的,因为它引用了单个对象(例如User)。控制器是复数形式,因为它是用于收集用户的控件(方法)。路线的命名方式完全取决于该个人开发者。我从来没有用户抱怨过Web请求的URL是单数还是复数。最终结果是在为最终用户提供质量页面显示或API请求时为当前和将来的贡献者保持通用约定。


查看完整回答
反对 回复 2019-12-17
  • 3 回答
  • 0 关注
  • 658 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信