• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

296
Views
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
almost 3 years ago · Santiago Gelvez
1 answers
Answer question

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!

almost 3 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error