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

时间:2018-04-27 08:37:00

标签: ruby-on-rails ruby-on-rails-5 rails-routing

在使用名为sarlLegalSatuses

的我的资源的camelcased版本时,我正在努力解决以下错误

这是我得到的错误:

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”结尾的复数形式的单词存在问题,所以我添加了以下变形而没有成功,你可以看到:

ACTI

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

有什么问题?

2 个答案:

答案 0 :(得分:1)

这里的错误是你试图违反Ruby on Rails惯例。坚持RoR惯例,在你的路线中使用蛇案:

root 'sarl_legal_statuses#new'
resources :sarl_legal_statuses

你没事。而且,对于那些可能在未来进入该项目的人来说,代码将更加友好。所以骆驼案的实验完全没有意义。

答案 1 :(得分:0)

显然,您必须在代码中对控制器名称进行蛇形操作,请参阅routing-for-controllers-with-multiple-words-in-in-rails-4 on stakoverflow,但我一直在阅读许多指南和命名约定我似乎从未提及过这种情况(使用哪种情况)所以我想我只需要用评论者的话说。