2010-07-15 66 views
2

我想生成嵌套对象的形式像这样的形式(HAML):结合jQuery的手风琴和轨道嵌套形式

- 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 

...我想打孩子形式一个jQuery用户界面(1.8.2)手风琴,像这样的(我认为):

- 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 

这几乎工作,但fields_for插入在每个孩子“迭代”的最后一个隐藏的输入。这个输入是作为内容div的兄弟产生的,这会混淆jquery UI。看起来accordion()错误地为下一个标题隐藏了输入,事情从那里混乱了。

如果有人能告诉我如何将嵌套表单放入jQuery UI手风琴中,我会非常感激。

RGDS,丹

回答

3

承认失败,我已经决定放弃嵌套形式,并保持手风琴。所以,如果有人有兴趣,现在我这样做:

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

这不是一个悲惨的选择。事实上,如果我想允许对象组件的ajax帖子,它要优于大的,全包的形式。