2011-09-01 3 views
6

나는 웹 app의 몇몇 사용자에게서만 봉사 될 필요가있는 파일에 접근을 감시하기 위하여 가로장을 사용하고있다. 이렇게하려면 액세스하려는 파일에 대한 정보를 수락하고 권한을 확인한 다음 승인 된 x-sendfile을 사용하여 해당 파일을 보내는 컨트롤러 메서드가 있습니다. 이 개념은 하나의 장애를 제외하고는 잘 작동합니다. 그것에서 나의 노선은 그것을 취급하는 것을 모른다. 내 루트 파일에서 내가 가진 :레일 라우팅 및 '.' 그 (것)들 안에

match 'atb_resources/:guid/:resource' => 'atb_resources#show', :as => :get_atb_resource, :via => :get 

및하지만 내 사양이 시도하는 경우 :

get 'show', :guid => 'some_guid', :resource => 'blah.txt' 

사양이 실패합니다

Failure/Error: get 'show', :guid => @atb.guid, :resource => 'blah.txt' 
ActionController::RoutingError: 
    No route matches {:guid=>"ABCDEFG5", :resource=>"blah.txt", :controller=>"atb_resources", :action=>"show"} 

그러나 이것은 좋은입니다 :

get 'show', :guid => 'some_guid', :resource => 'blahDOTtxt' 

문제가있는 것으로 가정합니다. 내 라우팅,하지만 정말 어떻게 기간이 경로에 영향을 이해하지 않습니다. 어떤 아이디어?

:requirements => { :resource => /.*/ } 

레일 중 하나없이 형식 지정자로 .txt을 해석하려고합니다 : 레일 2

:constraints => { :resource => /.*/ } 

(AFAIK) : 레일

답변

8

당신이 당신의 경로에이를 추가 할 수 3 그.

+0

정확히 내가 필요한 것, 감사합니다! – Matthew