Tengo dificultades para agregar parámetros de cadena de consulta a link_to UrlHelper. Tengo una vista de índice, por ejemplo, que tiene elementos de la interfaz de usuario para ordenar, filtrar y paginar (a través de will_paginate). El complemento will_paginate administra la persistencia dentro de la página de los parámetros de la cadena de consulta correctamente.
¿Existe un mecanismo automático para agregar los parámetros de la cadena de consulta a una determinada ruta con nombre, o debo hacerlo manualmente? Una gran cantidad de investigación sobre esta construcción aparentemente simple me ha dejado sin idea.
Editar
Algunos de los desafíos:
Si tengo dos parámetros de cadena de consulta, depósito y clasificación, ¿cómo establezco un valor específico para uno de estos en un link_to, conservando el valor actual del otro? Por ejemplo:
<%= link_to "0", profiles_path(:bucket => '0', :sorting=>?? ) %>
Si tengo múltiples parámetros de cadena de consulta, depósito y clasificación y tamaño de página, y quiero establecer el valor en uno de estos, ¿hay alguna forma de incluir 'automáticamente' los nombres y valores de los parámetros restantes? Por ejemplo:
<%= link_to "0", profiles_path(:bucket => '0', [include sorting and page_size name/values here] ) %>
El complemento will_paginate administra su variable de página y otras variables de cadena de consulta automáticamente. No parece haber un elemento de interfaz de usuario automático para administrar el tamaño de página. Si bien he visto código para crear una lista selecta de tamaños de página, prefiero tener elementos A para esto (como SO). Parte de este desafío está relacionado con el n. ° 2, parte está relacionado con ocultar / mostrar este elemento de IU basado en la existencia / no existencia de registros. Dicho de otra manera, solo quiero incluir enlaces de tamaño de página si hay registros en la página. Además, prefiero incluir automáticamente las otras variables QS (es decir, página, cubo, clasificación), en lugar de tener que incluirlas por nombre en link_to.
fuente
Respuestas:
Los documentos de API en link_to muestran algunos ejemplos de agregar cadenas de consulta a rutas con nombre y estilo antiguo. ¿Es esto lo que quieres?
link_to
También puede producir enlaces con anclajes o cadenas de consulta:fuente
Si desea la forma rápida y sucia y no se preocupa por el ataque XSS, use
params.merge
para mantener los parámetros anteriores. p.ejver: https://stackoverflow.com/a/4174493/445908
De lo contrario, verifique esta respuesta: params.merge y cross site scripting
fuente
Si desea mantener los parámetros existentes y no exponerse a ataques XSS, asegúrese de limpiar el hash de parámetros, dejando solo los parámetros que su aplicación puede enviar:
Si lo usa en varios lugares, limpie los parámetros en el controlador:
fuente
En caso de que quiera pasar un bloque, por ejemplo, para un botón de glifos, como se muestra a continuación:
Luego, pasar parámetros de cadenas de consulta se puede lograr a través de:
fuente