Мне определили следующий маршрут:
map.resources :images, :only => [ :index, :new, :destroy ]
когда я делаю a rake routes
Я получаю следующее:
image DELETE /images/:id(.:format) {:action=>"destroy", :controller=>"images"}
Моя проблема, я хотел бы использовать имена файлов в качестве моего :id
включая любое расширение. В данный момент мои идентификаторы добираются до контроллера минус расширение. Есть ли любой способ, которым я могу настроить вышеупомянутое map.resources для генерации следующего пути:
image DELETE /images/:id {:action=>"destroy", :controller=>"images"}
т.е. не использовали расширение как :format
?
Символ .
символ определен в ActionController::Routing::SEPARATORS
, где перечислены специальные символы для разделения URL на части.
Если вы хотите избежать разделения URL на
s, вам нужно передать аргумент :constraints => { :id => /regexp/ }
в map.resources
.
Дополнительную информацию см. в моем связанном вопросе и ответе.
Я не мог понять, как передать идентификатор в неповрежденный контроллер, но я использовал эту работу для восстановления идентификатора:
id = [ params['id'], params['format'] ].compact.join '.'