Я новичок в рельсах, так что простите меня, если я упускаю из виду простые вещи или путь рельсов. Моя цель - полностью заменить URL-адреса формы
/users/1
с участием
/username
для всех целей. (Я думаю, что выставлять на всеобщее обозрение леса ID — это все равно, что ходить с костью, торчащей из руки.) Но реализация кажется немного сложнее, чем я ожидал. Кажется, это меняет весь способ, которым rails индексирует и ищет пользователей, а не просто заменяет метод поиска.
Хотя я как бы заставил это работать, используя переопределение to_param
в моем файле user.rb
, я читал, что это означает, что у меня будет индексация проблемы вниз при использовании params([:username])
, и я не уверен, как это повлияет на мою
(a) модель сеанса при создании нового пользователя и
(b) Использование @User в файле user/show.html.erb.
Итак, я либо просмотрел следующие страницы (или задал вопросы):
- Ruby on rails маршрутизирует соответствующее имя пользователя
- настроить URL-адрес рельсов с именем пользователя
- Маршрутизация в Rails с преобразованием имени пользователя в URL-адрес:
- ошибка маршрутизации с: имя пользователя в URL
- Правильная маршрутизация для короткого URL-адреса по имени пользователя в Rails< /а>
- rails3, чистый URL, friendly_id, сеансы
Основные вопросы, которые я хотел бы понять из этого вопроса:
- Какую функциональность я потеряю при переходе на это? То есть, какие вещи в настоящее время «просто работают» в рельсах, которые мне придется решить и переписать, если я буду добиваться этой замены?
- Как показывает практика, лучше ли заменить это на friendly_id? Меня беспокоит то, что создание столбца slug в моей БД, идентичного имени пользователя, кажется немного несухим и вызывает у меня дискомфорт, и я бы предпочел по возможности избегать зависимостей от внешних драгоценных камней.
- Как должны выглядеть мои пользователи#show?