In Rails 3.2.11, ho le seguenti definizioni di percorsoOttenere Rails risorse nidificate al percorso per correggere controller annidati
resources :foos do
resources :bars
resources :bangs, :controller => 'foos/bangs'
end
che si traducono nei seguenti percorsi
foo_bars GET /foos/:foo_id/bars(.:format) bars#index
POST /foos/:foo_id/bars(.:format) bars#create
new_foo_bar GET /foos/:foo_id/bars/new(.:format) bars#new
edit_foo_bar GET /foos/:foo_id/bars/:id/edit(.:format) bars#edit
foo_bar GET /foos/:foo_id/bars/:id(.:format) bars#show
PUT /foos/:foo_id/bars/:id(.:format) bars#update
DELETE /foos/:foo_id/bars/:id(.:format) bars#destroy
foo_bangs GET /foos/:foo_id/bangs(.:format) foos/bangs#index
POST /foos/:foo_id/bangs(.:format) foos/bangs#create
new_foo_bang GET /foos/:foo_id/bangs/new(.:format) foos/bangs#new
edit_foo_bang GET /foos/:foo_id/bangs/:id/edit(.:format) foos/bangs#edit
foo_bang GET /foos/:foo_id/bangs/:id(.:format) foos/bangs#show
PUT /foos/:foo_id/bangs/:id(.:format) foos/bangs#update
DELETE /foos/:foo_id/bangs/:id(.:format) foos/bangs#destroy
foos GET /foos(.:format) foos#index
POST /foos(.:format) foos#create
new_foo GET /foos/new(.:format) foos#new
edit_foo GET /foos/:id/edit(.:format) foos#edit
foo GET /foos/:id(.:format) foos#show
PUT /foos/:id(.:format) foos#update
DELETE /foos/:id(.:format) foos#destroy
I percorsi sono tutti corretti , ma il routing del controller è corretto solo per resources :bangs
. Lo resources :bars
deve essere indirizzato al controller foos/bars
anziché al controller bars
.
Un tempo era possibile configurare i controller con nomi assegnati all'interno di foos/
per gestire la risorsa nidificata.
#app/controllers/foos/bars_controller.rb
class Foos::BarsController < ApplicationController
#/foos/:foo_id/bar/:id available here
end
Tuttavia questo non sembra essere più il caso. Quando è cambiato questo comportamento e come ottengo la stessa funzionalità in Rails 3.2.11?
EDIT: Mi rendo conto che i risultati di resources :bangs
nella mappatura del controller corretta, ma mi piacerebbe poterlo fare implicitamente. Se ho più risorse annidate all'interno di :foos
, non voglio dover definire il controller per ogni risorsa.
Sì, questo è il modo per farlo. Ho dimenticato di avere questa domanda ancora qui. – CITguy
Ho pensato che qualcun altro potrebbe ancora trovare la tua domanda pertinente. –
@PhillSparks, puoi dare un'occhiata a questo problema? È quasi la stessa cosa, ma non riesco a capirlo. http://stackoverflow.com/questions/35672666/rails-structuring-routes-controller-views-for-nested-resources –