В ответе на этот вопрос о маршрутах в Devise: URL-адреса пользователей Devise и Custom Rails это строка кода:
match '/:user' => "users#show", :as => :user_profile
Очевидно, это работает для задающего вопрос, но не для меня. я заканчиваю с
NoMethodError in UsersController#show
undefined method `books' for nil:NilClass
когда я перехожу на localhost:3000/username вместо localhost:3000/user/username. Я предполагаю, что приведенная выше строка match работает неправильно, и этот URL-адрес не относится ни к одному пользователю, согласно моему файлу маршрутов.
Второй URL-адрес перенаправляет меня на страницу show пользователя, но мне не нужен лишний /user в URL-адресе.
Поэтому я пытаюсь выяснить, что именно означают '/:user', :as и :user_profile, потому что я думаю, что предполагается заменить здесь несколько вещей, специфичных для моего приложения. Я думаю, что :as — это какой-то метод с псевдонимом. Я не могу найти ничего в документации Devise о маршруте с именем user_profile. И я не знаю, что имеет в виду '/:user'. Экземпляр объекта User? Атрибут пользователя/уникальный столбец в моей базе данных, который я использую для ссылки на конкретных пользователей? (Я использую постоянную ссылку для определяемых пользователем URL-адресов).