Como fazer o caso de identificação amigável insensível?
-
12-12-2019 - |
Pergunta
Como posso replicar os nomes de usuários do Twitter em URL CAS insensível:
- www.site.com/users/my_name
- www.site.com/users/my_name
- www.site.com/users/my_name
e que todos esses URLs, abre a página do usuário quando ele tem nome de usuário salvo como "my_name" ou etc.
e model.find ('my_name') O método encontra registro do usuário chamado my_name.
Solução
A maneira como você faz o caso de comparação insensível é normalizar o caso tanto no banco de dados quanto na entrada de pesquisa, para que a pesquisa sempre retorne o resultado, não importa o caso de entrada.
- .
-
Sempre os nomes de usuário antes de salvá-lo no banco de dados
-
use
Model.find(params[:id].to_s.downcase)
ou método personalizado para executar um caso insensível encontrarlá está você.
Se você não quiser alterar o caso de nome de usuário original, adicione uma segunda coluna à tabela do usuário onde você armazena a versão downcasada.Em seguida, execute a pesquisa neste campo em vez do campo do usuário original.