Rails Routing Вопрос: Сопоставление слагов / постоянных ссылок непосредственно под Root? - PullRequest
1 голос
/ 26 июня 2009

Всем доброго утра .. ..

Общие сведения о маршрутизации Здесь ... В настоящее время я работаю над созданием маршрута, аналогичного этому, для пользователей в моем приложении.

http://www.example.com/username

Затем он отображается на usersControllers # show, поэтому в моем файле маршрутов есть следующее.

map.connect '/: permalink',: controllers => "users",: action => "show"

Затем я получил действие show, чтобы найти пользователя по постоянной ссылке в параметре. Так что работает, но ....

Проблема, с которой я сталкиваюсь, заключается в том, что все другие НЕ УКАЗАННЫЕ маршруты отправляются на userController # show. то есть 404 и другие неназванные маршруты. Так что я не думаю, что я пойду с правильным соглашением для этого. Мое решение состоит в том, чтобы просто добавить другие именованные маршруты выше этого, что решает проблему, но мне кажется хрупким. Я думаю об этом неправильно?

Какое решение лучше? Я собираюсь поискать ответы в моем гугле, но я просто подумал, что брошу это на обсуждение. Идеи?

Ответы [ 2 ]

1 голос
/ 27 июня 2009

Что если вы получите пользователя, чье имя совпадает с другими URL-адресами на вашем сайте? Это похоже на проблему, ожидающую, чтобы это произошло.

Просто измените его на http://www.example.com/user/username

Таким образом, вы создаете пространство имен "user" для всех URL-адресов на основе имен пользователей.

1 голос
/ 26 июня 2009

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

...