Как сделать дружелюбный идентификационный случай нечувствителен?
-
12-12-2019 - |
Вопрос
Как я могу реплицировать имена пользователей Twitter в нечувствительности URL CAS:
- .
- www.site.com/users/my_name
- www.site.com/users/my_name
- www.site.com/users/my_name
И что все эти URL-адреса открывает страницу пользователя, когда у него есть имя пользователя, сохраненное как «my_name» или etc. Метод
и model.find ('my_name') находит запись пользователя с именем my_name.
Решение
То, как вы делаете случай сравнения, нечувствителен к сравнению состоит в том, чтобы нормализовать случай как в базе данных, так и в вводе поиска, так что поиск всегда возвращает результат, независимо от входных данных.
-
Всегда прямые имена пользователей, прежде чем сохранить его в базу данных
-
Используйте
Model.find(params[:id].to_s.downcase)
или пользовательский метод для выполнения нечувствительности к регистру находкиВот вы.
Если вы не хотите изменять исходное значение имени пользователя, затем добавьте второй столбец в таблицу пользователя, где вы храните нижнюю версию.Затем выполните поиск на этом поле вместо исходного поля пользователя.