'sarlLegalStatuses' 不是受支持的控制器名称

'sarlLegalStatuses' is not a supported controller name

我在使用名为 sarlLegalSatuses

的资源源的驼峰版本时遇到以下错误

这是我得到的错误:

in check_controller_and_action': 'sarlLegalStatuses' is not a supported controller name. This can lead to potential routing problems.

我的路由:

ils.application.routes.draw do
  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
  root 'sarlLegalStatuses#new'

  resources :sarlLegalStatuses
end

使用 snake case 解决了这个问题,但是随着我在代码中的深入,这开始变得非常烦人。我注意到人们对以 "s" 结尾的复数形式的单词有疑问,所以我添加了以下变形但没有成功,如您所见:

活动

veSupport::Inflector.inflections(:en) do |inflect|
  #   inflect.acronym 'RESTful'
  inflect.uncountable %w(sarl legal)
  inflect.irregular 'status', 'statuses'
end

怎么了?

这里的错误是你试图违背 Ruby Rails 惯例。坚持 RoR 惯例,在你的路线中使用 snake case:

root 'sarl_legal_statuses#new'
resources :sarl_legal_statuses

你会没事的。更重要的是,代码对于未来可能进入项目的人来说会更加友好。所以骆驼案例的实验完全没有意义。

显然,你必须在代码中对你的控制器名称进行蛇形大小写,请参阅 routing-for-controllers-with-multiple-words-in-in-rails-4 on stakoverflow 但我已经阅读了很多指南和命名约定我似乎他们从未提到过这个(使用哪种情况) 所以我想我只需要接受评论者的话。