2010-07-15 4 views
2

Je voudrais créer une forme avec des formes d'objets imbriquées comme celui-ci (en haml):combinant accordéon jquery et rails formes imbriquées

- form_for @parent do |parent_form| 
    - parent_form.fields_for :children do |child_form| 
    = child_form.label :first_name 
    = child_form.text_field :first_name 

... et je voudrais placer les formes de l'enfant dans un jquery ui (1.8.2) accordéon, comme celui-ci (je pense):

- form_for @parent do |parent_form| 
    %div#accordion 
    - parent_form.fields_for :children do |child_form| 
     %h3 
     %a{ :href => "#" }Header 
     %div 
     -# I wish this was a content div 
     = child_form.label :first_name 
     = child_form.text_field :first_name 

cela fonctionne presque, mais fields_for insère une entrée cachée à la fin de chaque enfant « itération ». Cette entrée est générée en tant que frère du contenu div, ce qui désoriente jquery ui. Il semble que l'accordéon() se trompe dans l'entrée cachée de l'en-tête suivant, et les choses se mélangent à partir de là.

Je serais très obligé si quelqu'un pouvait me dire comment mettre des formes imbriquées dans un accordéon jquery ui.

Mfg, Dan

Répondre

3

défaite Concédant, j'ai décidé d'abandonner la emboîtées et de garder l'accordéon. Donc, au cas où quelqu'un serait intéressé, maintenant je fais ceci:

%div.children_accordion 
    - @parent.children.each do |child| 
    %h3 
     %a{ :href => "#"}Header 
    %div 
     - form_for child do |child_form| 
     -# etc. 

Ce qui n'est pas une alternative tragique. En fait, il est supérieur à la grande forme tout compris si je veux autoriser les ajax posts des composants de l'objet.