Как я могу реализовать URL тщеславия в приложении направляющих?

Я хочу, чтобы у пользователей к способному была страница профиля по site.com/myNameHere. Направляющие ищут контроллер, названный "myNameHere". Действительно ли возможно установить routes.rb так, чтобы, если контроллер не найден, "myNameHere" был отправлен в качестве параметра на другой контроллер?

9
задан sth 6 February 2010 в 06:34
поделиться

1 ответ

Вы можете добавить следующий маршрут, как это:

map.profile_link '/:username', :controller => 'profiles', :action => 'show'

Обязательно добавьте его достаточно низкое в файле, ниже ваших ресурсов, что он не вмешивается в другие маршруты. Это должно быть наименьшем приоритетом. Далее необходимо изменить свое показать действие, чтобы использовать имя пользователя вместо ID:

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

Это все, что есть к нему. Счастливое кодирование!

Обновление:

Я расширил этот ответ в полный пост блога, URL тщеславия в Ruby на направляющих маршрутах . У меня есть дополнительные образцы кода и более тщательное объяснение.

9
ответ дан 4 December 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: