2010-06-19 13 views
1

J'ai à mon avis une boucle qui rend plusieurs partiels: chaque partiel est une simple bascule pour effectuer une opération de sauvegarde/annulation d'enregistrement sur un enregistrement. Chaque bascule partiel du champ booléen en utilisant javascript puis se met à jour, et les finitions du contrôleur en disant:Rails: Rendu d'une div partielle vers la droite?

$ controller 
render :partial => "save_unsave_buttons", :locals => {:matching => @matching}, :layout => false 

# view  
<div id=<%= "save#{match.id}" -%>> 
<%= render :partial => "save_unsave_buttons", :locals => {:matching => match} %> 
</div> 

Lorsque le contrôleur rend la save_unsave_buttons partielle, il n'est pas rendu à droite div; il met juste à jour le partiel pour le premier enregistrement qu'il trouve. Comment puis-je demander au contrôleur de rendre le save_unsave_buttons partiel à la div avec le bon identifiant?

Merci!

+0

Etre capable de voir la boucle vous parlez serait au sujet utile. Je ne suis pas tout à fait sûr de ce que vous essayez d'accomplir. –

+1

Pourquoi votre rendu est-il partiel le contrôleur? Nous devons en voir plus. – thomasfedb

Répondre

0

En regardant seulement les petites informations que vous avez fournies pour votre problème, je suppose que le coupable dans le code est l'étiquette div. L'étiquette div doit être comprise dans le partiel.

EDIT: Qu'est-ce que votre code fait est qu'il crée un seul div avec id save(the first match.id) et rend la partie à l'intérieur. Si je vous ai bien compris, vous avez besoin d'un div pour chaque match. Pour cela le div lui-même devrait être dans le partiel. Passez le match.id au partiel dans un collection. Votre point de vue doit être:

# view  

<%= render :partial => "save_unsave_buttons", :locals => {:matching => match, :collection => {@match_id => match.id} } %> 

et dans votre partielle _sav_unsave_buttons.html.erb:

<% content_tag :div, id => "save#{@match_id}" do %> 

    #YOUR CODE GOES HERE! 

<% end -%>