url_for rails links link_to button_to ruby-on-rails-3

ruby-on-rails-3 - links - rails link_to params



Rails 3 UJS: Pasar en params al usar link_to (2)

Cómo pasar en parámetros adicionales además de la ID

#we want to pass in additional params as well <%= link_to "bleh", like_path(answer), :add_param=>2 , :remote=>"true" ,:method=>:post %>


Puede pasar parámetros en la función de ruta como parte de la url. Algo como:

<%= link_to "bleh", like_path(:answer_id => 123, :add_param => 2), :remote=> true , :method=> :post %> # would result in something like # yourapp.com/like/aswer/3?add_param=2

Pero creo que necesita alejarse del asistente de ruta puramente basado en recursos en este caso. Revise la documentation para ideas.


Si no desea colocar los parámetros en el ayudante de ruta, tal vez porque hay muchos de ellos o no los conoce cuando se genera la página, también puede data-params atributo data-params .

Por ejemplo:

link_to "Add to cart", cart_path, data: { method: :post, remote: true, params: { product_id: 123 }.to_param }

El HTML generado se ve así:

<a data-params="product_id=123" data-remote="true" data-method="post" href="/cart" rel="nofollow">Add to cart</a>

El controlador JQuery UJS adjunta todo, desde el atributo data-params hasta el cuerpo de solicitud POST.

Conceptualmente, no hay mucha diferencia en utilizar el ayudante de ruta en primer lugar, pero si desea modificar los parámetros en Javascript, esta solución podría generar un código más elegante.