70 votes

passer le paramètre par link_to ruby on rails

J'ai cette ligne de code:

 <%= link_to "Add to cart", :controller => "car", :action => "add_to_cart", :car => car %>
 

quand je suis dans la méthode add_to_cart ... comment puis-je appeler le: car s'il vous plaît?

 @car = Car.new(params[:car])
 

ne fonctionne pas parce qu'il dit im essayant de stigmatiser

Je ne comprends pas ce qui ne va pas parce que je l'ai utilisé pour créer de nouveaux utilisateurs et cela a bien fonctionné

À propos, la voiture est mon objet de voiture.

thnx

140voto

JuanManuel LF Points 881

Essayer:

 <%= link_to "Add to cart", {:controller => "car", :action => "add_to_cart", :car => car.id }%>
 

et ensuite dans votre contrôleur

 @car = Car.find(params[:car])
 

qui trouvera dans votre table 'cars' (comme avec la pluralisation des rails) dans votre DB une voiture avec id == à car.id

J'espère que ça aide! codage heureux

plus d'un an plus tard, mais si vous le voyez ou si quelqu'un le voit, je pourrais utiliser les points; D

80voto

Jonathan Leung Points 849

Ce qui précède n'a pas fonctionné pour moi, mais cela n'a

<%= link_to "text_to_show_in_url, action_controller_path(:gender => "male", :param2=> "something_else") %>

6voto

MattMcKnight Points 4736

Peut-être essayez ceci:

 <%= link_to "Add to cart", 
            :controller => "car", 
            :action => "add_to_cart", 
            :car => car.attributes %>
 

Mais j'aimerais vraiment voir où l'objet voiture est en train d'être configuré pour cette page (c'est-à-dire le reste de la vue).

2voto

bensie Points 4255

Vous ne voulez probablement pas passer l'objet car tant que paramètre, essayez simplement de passer car.id . Qu'est-ce que vous obtenez lorsque vous inspect(params) après avoir cliqué sur "Ajouter au panier"?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X