2014-01-10 2 views
0

몇 가지 기사를 읽었습니다. 2 단계 이상의 깊은 자료를 상속하는 것이 좋지 않지만, 지금은 잊어 버립시 다.rails resource deep nesting

이 경로에서
car_brand 
    car_model 
    car_type 

내가 이런 걸 쓸 수있다 :

나는 그런 모델이, 이제 가정 해 봅시다

namespace :admin do 
    resources :car_brands do 
      resources :car_models do 
      resources :car_types 
      end 
     end 
end 

을하지만 난 어떤 좋은 기사를 찾을 수 없습니다를 내 컨트롤러의를 생성하는 방법 와 같은 스키마와 함께보기,

  1. 내가 컨트롤러 클래스 헤더에 쓸 내용 : c 아가씨

    관리 :: CarBrands :: CarModelsController <와 ApplicationController

또는 무엇? 나는이 순간을 이해할 필요가있다, 각 하위 모델보기는 하위 폴더보기에 있어야하며, 그렇지 않으면 어떻게해야합니까? downvote, 그것을 닫지 마십시오, 내가 정말 혼동하지 마십시오, 내가 car_types_controller.rb

실행 rake routescontrollers/admin 폴더에

답변

1
what i need to write in controller class header, something like: class 
Admin::CarBrands::CarModelsController < ApplicationController 

부분 적으로는 부분적으로 아니오. 예, 중첩 된 리소스가 네임 스페이스가 지정된 컨트롤러를 CarBrands::CarModelsController으로 의미하지 않기 때문에 네임 스페이스가 적용된 경로는 namespace :admin 및 아니요입니다. 모든 resources 네임 스페이스 admin 내에 있기 때문에 다음과 같이

, 모든 컨트롤러를 생성하는 것 :

rails g controller admin/car_brands 
rails g controller admin/car_models 
rails g controller admin/car_types 

자신의 대응에 컨트롤러 클래스와 뷰 디렉토리와 다른 테스트 특정 파일을 배치 할 위 각 명령을 실행 디렉토리.

- app/controllers/admin/ 
- app/views/admin/car_brands/ 
- app/views/admin/car_models/ 
- app/views/admin/car_types/ 

CarBrandsController에 대한 귀하의 컨트롤러 선언은 다음과 같습니다 : 문제의 디렉토리가 귀하의 질문은 컨트롤러와 뷰를 향한 이상이 설치를

class Admin::CarBrandsController < ApplicationController 
    ... 
end 

, 그것은 당신이 어떻게 당신까지 지금이다 각 컨트롤러를 리소스로 관리하려고합니다. car_typescar_models에 중첩하는 경우 car_models 컨트롤러의 메소드는 매개 변수로 car_type_id을 예상합니다. car_types 리소스를 중첩하지 않으면 해당 리소스는 독립 실행 형 리소스이며 다른 리소스에 종속되지 않습니다.

+0

나는 새로운 질문을 만들고 싶지 않았고, 여기에 물어볼 것이다. 내가 선택한 개체가 db (컨트롤러)에서 볼 수있는 시점이 언제인가? @ something.each do | c | c.id 및 c [: id]? –

+0

@ValdisAzamaris, 개체의 형식에 따라 다릅니다. 'c'가 모델의 인스턴스이고'c.id'로 접근하면, 그것은'symbol'을 키로하는 배열이나 해시입니다. 그리고 나서'c [: id]'로 접근합니다. 나는'c'가 여러분의 모델 중 하나의 인스턴스라고 생각합니다. 그러므로'c.id'를 시도하십시오. – vee

2

Admin::CarTypesController < ApplicationController (가서이 라인에서 살펴하는 방법을 알고하지 않았다, 예를 들면 다음과 같습니다..

/admin/car_brands/:car_brand_id/car_models/:car_model_id/car_types(.:format) 

Admin::CarTypesController#index metod를 매핑 할 URI 패턴 params 해시에서, 당신은 :car_brand_id:car_model_id를 찾을 수