반응형
매개 변수에 점이있는 경로가 일치하지 않는 이유는 무엇입니까?
/iGEL/contributions
잘 작동하는와 같은 내 사용자를위한 경로 가 있습니다. 하지만 이제 'A.and.B.'와 같은 이름으로 등록 된 사용자가 이름에 점이 포함되어 있으므로 경로가 일치하지 않습니다.
내 경로 :
get "/:user/contributions" => 'users#contributions'
어떤 아이디어?
기본적으로 동적 세그먼트는 점을 허용하지 않습니다. 이는 점이 형식이 지정된 경로의 구분 기호로 사용되기 때문입니다. 동적 세그먼트 내에서 점을 사용해야하는 경우이를 재정의하는 제약 조건을 추가하십시오. 예를 들어
:id => /[^\/]+/
슬래시를 제외한 모든 것을 허용합니다.
예를 들면 다음과 같습니다.
get "/:user/contributions" => 'users#contributions', :constraints => { :user => /[^\/]+/ }
변수 세그먼트가 마지막 세그먼트 인 경우 [^\/]
정규식 을 사용 하면 형식도 먹습니다. 그러한 경우 차라리 다음을 사용하십시오.
/([^\/]+?)(?=\.json|\.html|$|\/)/
다음 링크가 질문에 대한 답변 인 것 같습니다.
참고 URL : https://stackoverflow.com/questions/5369654/why-do-routes-with-a-dot-in-a-parameter-fail-to-match
반응형
'developer tip' 카테고리의 다른 글
쿼리 문자열에서 여러 매개 변수를 전달하는 방법 (0) | 2020.10.14 |
---|---|
Android UiThread (UI 스레드) 란? (0) | 2020.10.14 |
Vim, 구문 강조를 다시로드하는 방법 (0) | 2020.10.14 |
73 억 행의 시장 데이터를 저장하는 방법 (읽기 위해 최적화 됨)? (0) | 2020.10.14 |
Docker 제거 (0) | 2020.10.14 |