2012-10-30 3 views
0

Rails 3.2를 사용 중이고 범위가 지정된 중첩 리소스를 만들려고합니다 (올바른 용어인지 확실하지 않음). 나는 여러 그룹이 있고 나는 페이지의 자신의 세트를 가지고과 같이 각 그룹을 원하는 :Rails 3.2 범위가 지정된 리소스를 만드는 방법

/groups/1/pages/1 
/groups/1/pages/2 
/groups/1/pages/3 
/groups/2/pages/1 
/groups/2/pages/2 
/groups/3/pages/1 
/groups/3/pages/2 
/groups/4/pages/1 
etc. 

먼저 나는 groups 컨트롤러와 pages 컨트롤러를 생성

resources :groups do 
    resources :pages 
end 

문제처럼 중첩 URL에 :group_id을 변경하여 그룹 2, 그룹 3 및 그룹 4의 그룹 1 페이지를 볼 수있었습니다. 또한 페이지 ID는 단일 그룹에만 국한되지 않고 모든 그룹에서 고유했습니다.

다음으로 rails g controller groups/pages index show new create edit update destroy을 수행하여 중첩 된 컨트롤러를 만들려고했으나 작동하지 못했습니다. 나는 Google에 무엇이 있는지 알아 내기 위해 레일스 용어를 충분히 모릅니다.

답변

2

달성하려는 목표는 associations입니다. 컨트롤러를 생성하는 대신 모델, 컨트롤러 및 기본 뷰가 포함 된 스캐 폴드를 생성해야합니다. 적어도 그룹 및 페이지 모델이 필요합니다.

그런 다음 그룹 모델에 has_many :pages을 추가하십시오. 그리고 페이지 모델에 belongs_to :group을 추가하십시오. 그런 다음 group_id 열을 페이지 모델/데이터베이스에 추가해야합니다.

그러나 내가 틀렸을 때 페이지 그룹을 지정하려고하면 will_paginate 보석을 사용하십시오.

나는 또한 Mike Hartl's tutorial을 제안 할 것입니다. 훌륭한 배경을 제공하고 레일 용어 및 기본 기술을 배우게됩니다.