2014-11-09 2 views
1

매개 변수가있는 show route가 다른 메서드로 이동하고 매개 변수가없는 경우 show 메서드로 돌아가도록 경로 설정을 할 수 있는지 궁금합니다.요청에 쿼리 문자열이 포함 된 경우 별도의 작업으로 연결

get fruits/:id fruits#show 

get fruits/id?market=XXX  fruits#market 

은 내가 아약스를 통해 해당 페이지를 다시로드하고 원하기 때문에이 작업을 수행 할 수 난에 해당 URL을 추가 할 popstatus을한다.으로 그 일을하기 위해 좋은 것 경로는

+0

나는 좋은 생각 먹으 렴 생각하지 않습니다. param이있는 경우 다른 경로를 사용하거나 다른 경로로 리디렉션해야합니다. 이게 왜 필요한지 잘 모르는 아이디어 일뿐입니다. –

+0

앱 설정 방법을 잘 모르지만 중첩 된 리소스 사용을 고려하십니까? 이들이 서로 연결되면 market/: id/fruits/: id를 갖는 것이 좋습니다. – Peege151

답변

2

경로 제약 조건을 사용하십시오.

get 'fruits/:id', to: 'fruits#market', \ 
        constraints: ->(request) { request.query_parameters.present? } 

get 'fruits/:id', to: 'fruits#show' 

특정 매개 변수가 존재하는 경우는 예를 market를 들어, 확인할 수 있습니다

get 'fruits/:id', to: 'fruits#market', \ 
      constraints: ->(request) { request.query_parameters[:market].present? } 
관련 문제