Как сделать дружелюбный идентификационный случай нечувствителен?

StackOverflow https://stackoverflow.com//questions/12673549

  •  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.

Это было полезно?

Решение

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

  1. Всегда прямые имена пользователей, прежде чем сохранить его в базу данных

  2. Используйте Model.find(params[:id].to_s.downcase) или пользовательский метод для выполнения нечувствительности к регистру находки

    Вот вы.

    Если вы не хотите изменять исходное значение имени пользователя, затем добавьте второй столбец в таблицу пользователя, где вы храните нижнюю версию.Затем выполните поиск на этом поле вместо исходного поля пользователя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top