Я использую Rails для защиты доступа к файлам, которые необходимо подавать только некоторым пользователям веб-приложения. Для этого у меня есть метод контроллера, который принимает информацию о файле, который хочет получить доступ, проверяет их авторизацию, а затем, если они авторизованы, использует X-SendFile, чтобы отправить его им. Концепция работает нормально, за исключением одной зачеты: если они просят ресурс с собой. В нем моя маршрутизация не знает, чтобы справиться с этим. В моих маршрутах файл у меня есть:
match 'atb_resources/:guid/:resource' => 'atb_resources#show', :as => :get_atb_resource, :via => :get
и, но тогда, если я попробую это в своем спецификации:
get 'show', :guid => 'some_guid', :resource => 'blah.txt'
Спецификация не удается с A:
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'
Я предполагаю, что проблема с моей маршрутизацией , но я не очень понимаю, как периоды влияют на маршруты. Любые идеи?