문제

와 놀다 시나트라, 나는 약간의 문제에 붙어 있습니다 : 슬래시와 함께 매개 변수를 사용하면 라우터 엔진이 혼란 스럽습니다. 그렇다면 이런 종류의 매개 변수를 인코딩하지 않고도 처리 할 수있는 좋은 방법이 있습니까?

코드는 다음과 같습니다

get 'add/:url' do
   #....
end

그리고 나는 /add /와 같은 것을 얻으려고합니다.http://sctackoverflow.com/ 일하고 있는

도움이 되었습니까?

해결책

Splat 매개 변수를 사용하려고 했습니까?

같은 것 :

get '/add/*' do
  protocol = params[:splat].first
  address = params[:splat][1..-1].join('/')

  url = protocol + "//" + address
end

다른 팁

감사합니다. Splat 매개 변수에 대해 들어 본 적이 없으며이 경우에 완벽하게 작동합니다. 실제로, 나는 문서를 살펴 보았고 캡처 매개 변수와 정규식을 사용하여 더 짧은 것을 발견했습니다.

get %r{/add/(.+)} do
  url = params[:captures]
end

또는 사용 :

url = request.fullpath[5..-1]
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top