/ / ¿Cómo puedo agregar parámetros a la URL dada que es dinámica en rieles: ruby-on-rails, ruby, ruby-on-rails-3, parámetros, link-to

¿Cómo puedo agregar parámetros a la URL dada que es dinámica en rieles: ruby-on-rails, ruby, ruby-on-rails-3, parámetros, enlace a

Tengo una página que tiene url

http://localhost:3000/athletes/list

Cuando la búsqueda de usuarios en esta página cambia a algo como

http://localhost:3000/athletes/list?first_name=sachin&last_name=tendulkar

Dónde first_name y last_name son los parámetros de búsqueda cuando el usuario busca.

Quiero un enlace que agregue el parámetro view_type = algo en url for ex. Para la 1ra URL

http://localhost:3000/athletes/list?view_type=something

Para la 2da URL

http://localhost:3000/athletes/list?first_name=sachin&last_name=tendulkar&view_type=something

He intentado seguir

<%= link_to "Something ", :view_type => "something" %>

Pero para ambas url da la siguiente url

http://localhost:3000/athletes/list?view_type=something

Respuestas

5 para la respuesta № 1
<%= link_to "Something ", params.merge(:view_type => "something")  %>

Aunque el código anterior funciona en la mayoría de los casos por alguna razón, está dando error para alguna URL, puede ser porque estoy usando friendly_url for ex.

para url

http://localhost:3000/athlete/sachin_ramesh_tendulkar_1

dándome la siguiente URL incorrecta

http://localhost:3000/athlete/1?view_type=something

Para arreglar esto estoy usando javascript método de la siguiente manera

function something(){
var par =""
var link =window.location.href
if (link.indexOf("view_type=something") == -1)
par = link.indexOf("?") != -1 ? "&view_type=something" : "?view_type=something"
window.location.href = link+par
}

y código de rieles

<%= link_to "Something ", "javascript:void(0)", :onclick => "something();"  %>

1 para la respuesta № 2

Esto también podría ser útil (desde la API)

http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to#343-link-to-some-url-with-current-params