2

次のようなネストされたオブジェクトフォームを含むフォームを生成したいと思います(hamlで):

- 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

...そして子フォームを次のようにjqueryui(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の兄弟として生成されるため、jqueryuiが混乱します。accordion()が非表示の入力を次のヘッダーと間違えているようで、そこから物事が混乱します。

ネストされたフォームをjqueryuiアコーディオンに配置する方法を誰かに教えてもらえれば、私は大いに義務付けられます。

Rgds、ダン

4

1 に答える 1

3

敗北を認めて、私はネストされたフォームを放棄し、アコーディオンを維持することにしました。だから、誰かが興味を持っている場合に備えて、今私はこれを行います:

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

これは悲劇的な選択肢ではありません。実際、オブジェクトの構成要素のajax投稿を許可したい場合は、大きくて包括的な形式よりも優れています。

于 2010-07-16T21:07:19.870 に答える