У меня есть настройка маршрута для загрузки документа, для которого мне нужен именованный параметр для имени документа, чтобы я получил имя документа в документе загрузки. Я также передаю несколько неназванных параметров для идентификации документа.
выглядит так:
match "download/:name", :to => 'documents#download', :as => "doc_download"
И у меня есть ссылка, настроенная так:
<%= link_to doc.pdf_name, doc_download_url(doc.pdf_name,
:prefix => doc.doc_prefix,:num => doc.doc_num, :change => doc.doc_change) %>
Когда я запускаю страницу, я получаю следующую ошибку:
No route matches {:controller=>"documents", :action=>"download",
:prefix=>"D", :num=>"002", :change=>0, :name=>"sdr_vor_000.pdf"}
Странно, что маршрут отображается в моих рейковых маршрутах:
doc_download /download/:name(.:format) {:controller=>"documents", :action=>"dow
nload"}
Идеи
Также, если я удаляю параметр name или делаю его необязательным, он работает, но не вставляет имя в URL. Он просто прикрепляется к строке запроса.