Rails路线:资源错误单数

我在routes.rb有以下行(Rails 4.1.4):

 resources :request_caches 

但是,当我运行rake routes我得到以下输出:

 request_caches GET /request_caches(.:format) request_caches#index POST /request_caches(.:format) request_caches#create new_request_cach GET /request_caches/new(.:format) request_caches#new edit_request_cach GET /request_caches/:id/edit(.:format) request_caches#edit request_cach GET /request_caches/:id(.:format) request_caches#show PATCH /request_caches/:id(.:format) request_caches#update PUT /request_caches/:id(.:format) request_caches#update DELETE /request_caches/:id(.:format) request_caches#destroy 

如您所见,Rails以某种方式将request_caches复数映射到request_cach单数。 但它应该是request_cache 。 这是一种特殊情况,因为caches这个词? 我也玩过

 resources :request_caches, as: :request_cache 

但这导致了错误的路由,如request_cache_index 。 此外,我认为这是一项标准任务,应该使用Rails实习生路线助手清楚地解决。

那么,我做错了什么?

Rails猜测。 这不完美。 在config/initializers/inflections.rb添加

 ActiveSupport::Inflector.inflections(:en) do |inflect| inflect.irregular 'request_cache', 'request_caches' end 

您需要在初始化程序中重新启动服务器。

看看config/initializers/inflections.rb 。 评论中应该有一些例子。

像这样的东西应该做的伎俩:

 ActiveSupport::Inflector.inflections(:en) do |inflect| inflect.singular 'request_caches' 'request_cache' end 

确保在更改初始化程序后重新启动服务器。

正如我所说,您可以通过更改config/initializers/inflections.rb来实现它,如下所示

 ActiveSupport::Inflector.inflections(:en) do |inflect| inflect.irregular 'request_cache', 'request_caches' end