Используя Ruby on Rails 3 новая система маршрутизации, это возможный изменить значение по умолчанию: идентификационный параметр
resources :users, :key => :username
выпустите следующие маршруты
/users/new
/users/:username
/users/:username/edit
...etc
Я спрашиваю, потому что, хотя вышеупомянутый пример прост, было бы действительно полезно сделать в текущем проекте, я продолжаю работать.
Действительно ли это возможно изменить этот параметр и в противном случае является там конкретной причиной относительно почему нет?
Если я вас правильно понимаю, вы хотите, чтобы в вашем URL было имя пользователя
вместо id
, верно?
Вы можете сделать это, переопределив ] to_param
в вашей модели. Вы можете получить более подробную информацию здесь .
Передавайте имя пользователя в качестве входных данных помощникам пути.
В коде представления:
user_path(u.username) #/users/john
В контроллере обработайте id
, полученный как username
:
def show
user = User.find_by_username!(params[:id])
...
end