• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

308
Vistas
Rails: cómo escapar del "espacio" en la cadena de búsqueda de URL generada por Rails como% 20 en lugar de +

Tengo un campo de búsqueda en una aplicación de Rails. Se implementa de esta manera:

 <%= text_field_tag :searchAny, params[:searchAny_params], placeholder: "Search", id: "search_input", class: "search-field" %> <%= submit_tag "Search", name: nil, id: "search-button", class: "search-button" %>

Cuando busco cadenas, que contienen espacios como: find something , obtengo find something en params, que luego se representa en la url como find+something . Que yo sepa, los espacios solían escaparse a través de +, pero ahora deberían escaparse a través de% 20.

Me gustaría mucho cambiar a %20 en mi URL, porque accedo a la cadena de consulta en mi interfaz para que esté disponible para nuevas funciones de búsqueda o para analizarla en algún lugar y necesitaría el signo + como una cadena de consulta viable. Actualmente no puedo buscar house+ o + , porque la función JS que escribí divide la cadena de búsqueda y actualmente tiene que reemplazar + con space .

 var searchquery = searchParams.split('?').pop().split('&').pop().split('=')[1].replace(/[+]/g, ' ');

Después de mi refactorización, espero obtener la parte de la cadena de búsqueda de mi URL con% 20 para el espacio y dejar + disponible.

 var searchquery = searchParams.split('?').pop().split('&').pop().split('=')[1].replace(/%20/, ' ');

¿Cómo puedo cambiar la forma en que se escapan los parámetros en la cadena de búsqueda?

Espero que alguien pueda ponerme en la dirección correcta. Gracias por adelantado.

Suma

Actualmente, mi aplicación Rails produce la siguiente URL:

 https://www.domain.tld/collection/opac?searchAny=find+something

Preferiría que la cadena de consulta ya esté % escapada:

 https://www.domain.tld/collection/opac?searchAny=find%20something
about 3 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Según esta respuesta de una pregunta similar , puede usar la gema direccionable . O, alternativamente, puede intentar usar encodeUri() de Javascript para manejar la codificación de URL desde el lado frontal. Por ejemplo:

 document.getElementById('search_button').addEventListener('click', function() { var searchInput = document.getElementById("search_input"); var encodedQuery = encodeURI(searchInput.value) // continue to use the encodedQuery as search query });

¡Espero que esto ayude!

about 3 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda