Маршрутизация Rails с параметром, который включает в себя косой чертой (/)
Я хотел бы настроить маршруты следующим образом
-
/url/http://google.com
до urls
и index
.
Теперь у меня есть routes.rb
:
match "urls/:url" => "urls#index"
Маршрутизация, похоже, не работает, потому что разрезан в :url
.
Ответы
Ответ 1
Вы можете сделать что-то похожее на
match "urls/:url" => "urls#index", :constraints => {:url => /.*/}
в Rails 2.3, который может работать в Rails 3, чтобы вы могли соответствовать/в URL-адресе: (хотя, я не могу проверить это на данный момент.)
Ответ 2
Или вы можете использовать Route Globbing:
match "urls/*url" => "urls#index"
Вы можете получить доступ к значениям в вашем контроллере через
params[:url]
Ссылка:
http://guides.rubyonrails.org/routing.html
Найдите "Маршрутизация маршрута"
Ответ 3
get ':klass/:id', constraints: { klass: /\D*/ }