programing tip

선택적 매개 변수를 사용한 라우팅

itbloger 2020. 12. 30. 07:43
반응형

선택적 매개 변수를 사용한 라우팅


경로 파일에 추가했습니다.

map.show_book "/show_book/:name/year/:year", :controller => "book", :action => "show_version"

또한 다음을 추가했습니다.

map.show_book "/show_book/:name", :controller => "book", :action => "show_version"

연도를 지정하지 않고 최신 책을 표시합니다.

하지만 작동하지 않습니다. 1 년을 지나지 않으면 "show_book / NAME"에서 경로를 찾을 수 없습니다.

왜 작동하지 않는지 몇 가지 아이디어가 있습니까?

감사 !

추신. "? year = XXXX"의 매개 변수로 연도를 사용할 수 있다는 것을 알고 있지만 연도를 URL의 일부로 사용하고 싶습니다.


선택적 부분을 괄호로 묶습니다 .

map.show_book "/show_book/:name(/year/:year)", :controller => "book", :action => "show_version"

두 번째 경로를 제거합니다.

최신 정보

위의 답변은 레일 3 이상에만 해당됩니다. 두 경로 정의를 반전하면 문제가 해결되었습니다 (아래 Alessandro의 설명 참조).

참조 URL : https://stackoverflow.com/questions/7281592/routing-with-an-optional-parameter

반응형