2013-02-26 2 views
-1

현재 GET REST 서비스를 위해 필자는 필자가 필요로하는 6 개의 테이블에서 JSON을 가져 오는 제어기를 가지고있다.언제 새 컨트롤러를 만들어야합니까?

class MySampleController < ApplicationController 

respond_to :json 

def show 
    @organization = Organization.includes([:ThoseSixTables]) 
    respond_with(@organization) 
end 

다음 내 길에 내가 좋아하는 뭔가를해야합니다 : 클라이언트가 /my_sample/1.json 같은 URL에 내 서비스를 호출 할 때

resources :my_sample, only: [:show] 

그래서 그것으로 JSON을 반환을 예를 들어.

웹 페이지 나는이 서비스들을 위해 쓰고 있는데, 탭과 같은 두 개의 더 많은 탐색 링크를 가지고있다. 그래서 VicePresident 링크를 클릭하면 새로운 GET REST 서비스를 호출하고 완전히 새로운 세트를 반환해야한다. 그 (것)들에 자료의.

그래서 새 컨트롤러를 만들어야합니까? 또는 동일한 컨트롤러를 사용하고 경로에 중첩 된 리소스를 추가 할 수 있습니까? 예를 들어 /my_sample/1/vpview과 같은 URI에서 새 JSON을 가져올 수 있습니다.

답변

1

다음은 좋은 읽을 거리입니다. http://guides.rubyonrails.org/routing.html

모든 리소스에 대해 새 컨트롤러를 만들겠습니다. 또한 너무 깊어지기를 원하지 않는 중첩 리소스에주의하십시오.

+0

감사합니다. Rails 란 무엇인가를 "보스"로 설명하는 방법입니다! 오, 아냐, 왜 새 컨트롤러 야? 왜 우리가 가지고 있던 컨트롤러에 새로운 "메소드"를 추가하고 routes.rb에 "math .. to"구문을 추가하지 않았습니까? –

1

좋아하는 URL을 디자인하고 함께 그룹화 할 수있는 패턴을 볼 수 있습니다 (예 : 많은 프로필 페이지가 동일한 구조의 json 파일을 가짐).

나를 위해 귀하의 앱이 여러 조직이 아닌 하나의 조직 만 표시한다고 추측합니다. 아마도 일회용 페이지 일 것입니다. 나는 대개 이러한 one-off 페이지를 abouts-controller에 메소드로 넣는다.

부사장 페이지는 사용자 리소스처럼 들리므로 나중에 CEO 등을위한 다른 페이지를 추가 할 수 있습니다. 따라서 사용자 컨트롤러를 갖는 것이 자연 스럽습니다. 이것은 미래의 재사용을 가능하게합니다.

관련 문제