Advanced Rails Маршрутизация коротких URL-адресов и имен пользователей от корневого URL - PullRequest
1 голос
/ 28 мая 2010

Я хочу, чтобы URL-адреса имен пользователей и короткие URL-адреса Base 58 использовались для ресурсов вне корневого URL-адреса следующим образом:

http://mydomain.com/username #=> goes to given user

http://mydomain.com/a3x9 #=> goes to given story

Я знаю, что имена пользователей могут конфликтовать с короткими URL-адресами, и у меня есть обходной путь, но что я не могу понять, так это лучший способ установить это в рельсах.

Могу ли я сделать это на маршрутах рельсов? Должен ли я что-то сделать с частью промежуточного программного обеспечения Rack? Должен ли я установить контроллер маршрутизации?

Пожалуйста, дайте мне знать лучший способ сделать это. Большое спасибо!

Ответы [ 2 ]

1 голос
/ 22 марта 2011

Можете ли вы сделать что-то подобное?

  match "/s/:short" => redirect {|params| "/stories/#{Base58.decode params[:short]}"}
1 голос
/ 28 мая 2010

Не зная вашего обходного пути, трудно сказать наверняка, но я бы предпочел маршрутизатор, если это возможно, для простоты. Я использую промежуточное программное обеспечение Rack только тогда, когда мне действительно нужно обработать сам запрос. Это может усложнить для вас вещи. Контроллер для его обработки также должен работать нормально, если маршрутизатор не может этого сделать. В Rails 3 есть мощный роутер, но у 2 это не так уж и много. Возможно, вам также понадобится настроить конечную точку Rails Metal , чтобы справиться с этим.

...