Rails路线:资源错误单数

23t*_*tux 3 ruby routes ruby-on-rails

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

resources :request_caches
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时,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
Run Code Online (Sandbox Code Playgroud)

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

resources :request_caches, as: :request_cache
Run Code Online (Sandbox Code Playgroud)

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

那么,我做错了什么?

j-d*_*exx 6

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

ActiveSupport::Inflector.inflections(:en) do |inflect|
   inflect.irregular 'request_cache', 'request_caches'  
end
Run Code Online (Sandbox Code Playgroud)

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