Ruby on Rails Route

104 Views Asked by At

how can I generate a RoR route like this one:

Prefix: gateway

verb: post

URI Pattern: /region/:id/gateway

Controller#Action: region#gateway

I tried with

resources :region, :only => :show do
    post :gateway, :only => :show
end

but is generating by default a route to show the regions

/region/:id(.:format)

I want to skip the regions show action and only keep it the /region/:id/gateway route

3

There are 3 best solutions below

0
NARKOZ On BEST ANSWER
post "gateway/region/:id/gateway" => "region#gateway"
0
Pravin Mishra On

Have a look to Rails routing documentation. It's well documented.

0
kunashir On

If You want to use resources, You may write:

resources :region do
 member do
    post :gateway
 end
end

It will be recognized as:

region/:id/gateway

You can't use "only" because it reduce to one action!