Как я могу получить маршруты рельсов, чтобы они соответствовали * для окончательного параметра моего URL? - PullRequest
0 голосов
/ 28 декабря 2011

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

/attendants/update_player_status/game/1/maybe/user_hash/$2a$10$1kY8xvOjkqZJJJGWDd0q2Oeyl7kICSBDPTYzGhkJ6pZnE6YA/nJie

где последняя часть URL может содержать любые символы, например * (т. Е. Она может содержать '/' '$' '*' и т. Д.)

Мои маршруты работают, но затем он набрасывается на '/' в параметре (как показано выше):

match '/attendants/update_player_status/game/:game_id/:status/user_hash/:user_hash' => 'attendants#update_player_status_using_hash', :as => 'update_player_status_using_hash'

Любые рекомендации о том, что я должен делать? Как только я вытащу параметр правильно, я буду использовать его для входа пользователя на сайт и разрешить очень ограниченный доступ.

1 Ответ

1 голос
/ 28 декабря 2011

Один из вариантов: маршрутизация (из документов):

match 'photos/*other' => 'photos#unknown'

# In controller, params[:other] is everything after 'photos'

Вы также можете использовать регулярное выражение в constraints матча, чтобы разрешить косую черту, согласно этому ответу .

IMO, шатание немного более элегантно; это может зависеть от остальных ваших маршрутов, что является лучшим решением.

...