Tôi đang sử dụng đường ray để bảo vệ quyền truy cập vào các tệp chỉ cần được phân phát cho một số người dùng ứng dụng web. Để thực hiện điều này, tôi có một phương thức điều khiển chấp nhận thông tin về tệp mà họ muốn truy cập, kiểm tra ủy quyền của họ và sau đó nếu họ được ủy quyền sử dụng x-sendfile để gửi cho họ. Khái niệm này hoạt động tốt ngoại trừ một snag: nếu chúng yêu cầu một tài nguyên với a. trong đó định tuyến của tôi không biết xử lý nó. Trong tập tin tuyến đường của tôi tôi có:định tuyến và thông số đường ray bằng dấu '.' trong số họ
match 'atb_resources/:guid/:resource' => 'atb_resources#show', :as => :get_atb_resource, :via => :get
và nhưng sau đó nếu tôi cố gắng này trong spec của tôi:
get 'show', :guid => 'some_guid', :resource => 'blah.txt'
spec không thành công với một:
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"}
nhưng điều này là tốt:
get 'show', :guid => 'some_guid', :resource => 'blahDOTtxt'
Tôi giả định vấn đề là định tuyến của tôi, nhưng tôi không thực sự hiểu được khoảng thời gian ảnh hưởng đến các tuyến đường như thế nào. Bất kỳ ý tưởng?
Chính xác những gì tôi cần, cảm ơn! – Matthew