【发布时间】:2016-01-19 22:34:58
【问题描述】:
我有两个控制器 offers 和 posts。
在routes.rb 我有以下...
resources :offers
get "/posts" => "posts#index"
post "/posts" => "posts#create"
get "/posts/new" => "posts#new"
get "/posts/:id/edit" => "posts#edit"
get "/posts/:id" => "posts#show"
put "/posts/:id" => "posts#update"
patch "/posts/:id" => "posts#update"
delete "/posts/:id" => "posts#destroy"
据我了解,这两种路由方式在操作上是相同的。或者换一种说法,resources :offers 是写出每条路线的捷径。
然而,我的问题是当我执行rake routes 时,我得到...
Prefix Verb URI Pattern Controller#Action
offers GET /offers(.:format) offers#index
POST /offers(.:format) offers#create
new_offer GET /offers/new(.:format) offers#new
edit_offer GET /offers/:id/edit(.:format) offers#edit
offer GET /offers/:id(.:format) offers#show
PATCH /offers/:id(.:format) offers#update
PUT /offers/:id(.:format) offers#update
DELETE /offers/:id(.:format) offers#destroy
posts GET /posts(.:format) posts#index
POST /posts(.:format) posts#create
posts_new GET /posts/new(.:format) posts#new
GET /posts/:id/edit(.:format) posts#edit
GET /posts/:id(.:format) posts#show
PUT /posts/:id(.:format) posts#update
PATCH /posts/:id(.:format) posts#update
DELETE /posts/:id(.:format) posts#destroy
“速记”offers 路由分配有四个前缀,而速记 posts 路由只有两个。
所以我的问题是: 为什么在以手写方式写出时,所有路由都没有给定前缀?
有没有什么方法可以在以手写方式写出路由时为其分配前缀?
【问题讨论】:
标签: ruby-on-rails routing