Изменение идентификационного параметра в маршрутизации направляющих

Используя Ruby on Rails 3 новая система маршрутизации, это возможный изменить значение по умолчанию: идентификационный параметр

resources :users, :key => :username

выпустите следующие маршруты

/users/new
/users/:username
/users/:username/edit
...etc

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

Действительно ли это возможно изменить этот параметр и в противном случае является там конкретной причиной относительно почему нет?

40
задан Peter Mortensen 11 June 2010 в 21:53
поделиться

2 ответа

Если я вас правильно понимаю, вы хотите, чтобы в вашем URL было имя пользователя вместо id , верно?

Вы можете сделать это, переопределив ] to_param в вашей модели. Вы можете получить более подробную информацию здесь .

35
ответ дан 27 November 2019 в 01:07
поделиться

Передавайте имя пользователя в качестве входных данных помощникам пути.

В коде представления:

user_path(u.username) #/users/john

В контроллере обработайте id, полученный как username:

def show
  user = User.find_by_username!(params[:id])
  ...
end
0
ответ дан 27 November 2019 в 01:07
поделиться
Другие вопросы по тегам:

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