Изменить маршрут устройства с ID на Имя пользователя - PullRequest
8 голосов
/ 18 апреля 2011

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

Рисование имени пользователя маршрутов

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

http://example.com/username

вместо

http://example.com/users/1

1 Ответ

7 голосов
/ 18 апреля 2011
class User < ActiveRecord::Base
  def to_param
    username
  end
end

в вашем контроллере сделайте

@user = User.find_by_username(params[:id])

вместо

@user = User.find(params[:id])

. Это сделает ваши маршруты такими, как http://example.com/users/username

, чтобы сделать то, что вы хотитеВы можете сделать маршрут следующим образом:

resources :users, :path => '' do
  # nested resources...
end

, поэтому user_path (@user) сделает URL http://example.com/username, но это не очень хорошая практика, потому что это не REST.Я советую вам оставить URL-адреса, такие как http://example.com/users/username

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