2012-01-17 3 views
0

두 개의 관련없는 모델이 있습니다. 예를 들어 사람빌딩입니다. 앱에서 www.mysite.com/JohnDoe/EmpireState같은 URL을 받으면 나는 이름 JohnDoe에와 사람, 그리고 이름 EmpireState와 건물에 대해 동일한 속성을 보여 드리고자합니다.레일에서 다중 리소스 라우팅

특히 라우팅 부분에 대해 혼란스러워합니다. 데이터베이스에서 객체를 반환 할 수있는 페이지 컨트롤러를 만들 필요가 있는지 확신 할 수 없습니다. 어떻게해야합니까?

아래와 같은 것을 원하십니까?

match ':user_name/:building_name', :controller => pages 
+1

두 모델이 실제로 관련이없는 경우 , 당신은 아마 그들을 단일 자원 (url)으로 나타내지 말아야한다. –

답변

0

이 두 가지가 관련이 없다면 그렇게해서는 안됩니다. 관련성이있는 경우 중첩 된 리소스를 호출합니다.

예 :

resources :projecs do 
    resources :tasks 
end 

샘플 URL : "/ 프로젝트/12/작업/1281"

편집 : 그들은 관련이없는 경우 (내 댓글에서 촬영) :

BuildingsController에서 부모 정보도 가져올 수 있습니다. 귀하의 질문에 일치하는 경로를 사용하면 params [: user_name] AND params [: building_name]을 사용할 수 있으며 원하는대로 가져올 수 있습니다 ...

Building.find_by_name(params[:building_name]) # return all Buildings based on URL param 
+0

그래, 분명히 해줘서 고마워 레일 사이트의 라우팅 가이드를 읽었지만 여전히 ID와 관련있는 것을 보지 못했습니다. 그것은 허영심 URL을 위해 주로이다 그러나 나는 그것의 가능한 생각했다. –

+0

"허영심 URL"이란 무엇입니까? – jipiboily

+0

모든 것이 가능합니다 ... 건물의 페이지를 2 단계에 표시하고 사람의 페이지를 1 단계에 표시하고 싶습니까? – jipiboily

관련 문제