Я хочу следующий шаблон URL, пожалуйста, помогите, я использую рельсы 3 - PullRequest
0 голосов
/ 25 октября 2010

Мне нужны следующие URL для моего UserController:

localhost/user/join
localhost/user/login
localhost/user/user_name (this can be any name in here, it should fire the 'profile' action)

Затем в папке / user / user_name_here / мне нужно:

/user/user_name/blah1/
/user/user_name/blah2/
/user/user_name/blah3/

Кажется, что делает ресурсы: пользователь только создаетчто-то для index / show / get, так что я не понимаю, как это сделать, кроме как создавать столько маршрутов match '/user/join' и т. д. в маршрутах.

Ответы [ 2 ]

2 голосов
/ 25 октября 2010
match "user/:user_name" => "users#show"

затем / user / username перенаправит на контроллер пользователя, вызовет метод show и передаст: user_name param

вы можете сделать то же самое с другими действиями, которые не соответствуют параметрам,

match '/user/login' => "sessions#new"
match '/user/join' => "user#new"
0 голосов
/ 25 октября 2010

Yup - 'resources: user' - это просто леса для обычных методов CRUD. Если вы хотите, чтобы пути к ним были дополнительными, вам придется создавать маршруты (это единственный способ, которым ваше приложение знает, как направить данный URL-адрес на заданный контроллер и метод).

Gem friendly_id делает что-то похожее на то, что вы предлагаете (хотя я считаю, что он исправляет метод .find на классах ActiveRecords вместо того, чтобы специально обрабатывать маршрутизацию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...