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实习生路线助手清楚地解决.
那么,我做错了什么?
Rails猜测.这不完美.在config/initializers/inflections.rb加
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.irregular 'request_cache', 'request_caches'
end
Run Code Online (Sandbox Code Playgroud)
您需要在初始化程序中重新启动服务器.