pasar parámetro por enlace a ruby on rails
Tengo esta línea de código:
<%= link_to "Add to cart", :controller => "car", :action => "add_to_cart", :car => car %>
Cuando estoy en el método add_to_cart...¿cómo puedo llamar al :coche, por favor?
@car = Car.new(params[:car])
Que no funciona porque dice que estoy tratando de stringify ella.
No entiendo qué está mal; porque usé esto para crear nuevos usuarios y funcionó bien.
Por cierto, el coche es mi objeto de coche.
4 answers
Intenta:
<%= link_to "Add to cart", {:controller => "car", :action => "add_to_cart", :car => car.id }%>
Y luego en su controlador
@car = Car.find(params[:car])
Que, encontrará en su tabla 'cars' (como con la pluralización de rails) en su DB un coche con id = = to car.id
Espero que ayude! feliz codificación
Más de un año después, pero si lo ves o alguien lo hace, podría usar los puntos ;D
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-22 16:56:26
Lo anterior no funcionó para mí, pero esto lo hizo
<%= link_to "text_to_show_in_url", action_controller_path(:gender => "male", :param2=> "something_else") %>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-19 17:41:58
Tal vez intente esto:
<%= link_to "Add to cart",
:controller => "car",
:action => "add_to_cart",
:car => car.attributes %>
Pero realmente me gustaría ver dónde se está configurando el objeto car para esta página (es decir, el resto de la vista).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-14 04:06:31
Probablemente no desee pasar el objeto car
como parámetro, intente simplemente pasar car.id
. ¿Qué obtienes cuando inspect(params)
después de hacer clic en "Agregar al carrito"?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-14 03:27:56