2014-09-30 1 views
0

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

К примеру, кто-то по имени Джон Доу, будет иметь профиль:

mydomain.com/profiles/johndoe 

Если есть еще один John Doe, поэтому я хотел бы, чтобы:

mydomain.com/profiles/johndoe1 

mydomain.com/profiles/johndoe2 

Я читал о динамическом маршруте здесь

Rails Routing from the Outside In

Но я не мог понять, как сделать это.

спасибо.

ответ

3

С дикими картами в URL-адресе вы можете выполнить свою задачу. В config/routes.rb сайте:

get '/profiles/:username', to: 'controller_name#action_name' 

Теперь params[:username] равно «johndoe1» в первом примере и «johndoe2» ваш второй пример URL. Таким образом, вы можете в вашем контроллере, положить

def show 
    @user = User.find_by_username(params[:username]) 
end 

и заполнит @user с записью базы данных на основе имени пользователя.

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

+0

спасибо. Это сработало! На самом деле, у меня не было этого имени пользователя поля, только first_name и last_name, но я создал новое имя пользователя поля, как вы предложили. –

Смежные вопросы