를 해결하기 위해, 나는 다음과 같은 한 경로 정의를 다음과 같은 경로 결과 중첩 된 컨트롤러 레일 3.2.11에서
resources :foos do
resources :bars
resources :bangs, :controller => 'foos/bangs'
end
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
경로가 모두 올바른지 컨트롤러 라우팅은 resources :bangs
에 대해서만 정확합니다. resources :bars
은 bars
컨트롤러가 아닌 foos/bars
컨트롤러로 라우팅해야합니다.
이전에는 중첩 된 리소스를 처리하기 위해 foos/
내에 네임 스페이스 컨트롤러를 설정할 수있었습니다.
#app/controllers/foos/bars_controller.rb
class Foos::BarsController < ApplicationController
#/foos/:foo_id/bar/:id available here
end
그러나 이것은 더 이상 보이지 않습니다. 이 동작이 언제 변경되었으며 레일즈 3.2.11에서 같은 기능을 어떻게 얻을 수 있습니까?
편집 : 정확한 컨트롤러 매핑에서 resources :bangs
결과를 실현하지만 암묵적으로 수행 할 수 있기를 바랍니다. :foos
내에 여러 중첩 된 리소스가있는 경우 모든 리소스에 대해 컨트롤러를 정의하지 않아도됩니다.
그래,이 방법이 그것을 할 수 있습니다. 나는 아직도이 질문을 여기에두고 왔다는 것을 잊었다. – CITguy
다른 누군가가 귀하의 질문과 관련이 있다고 생각했습니다. –
@PhillSparks,이 문제를 살펴볼 수 있습니까? 그것은 거의 같지만, 나는 그것을 이해할 수 없다. http://stackoverflow.com/questions/35672666/rails-structuring-routes-controller-views-for-nested-resources –