0

ユーザーが配送ボックスに新しい内容を追加できるようにしています。例えば:

ユーザーは出荷を設定しています。各出荷には複数の箱を含めることができ、各箱には複数の内容物を含めることができます。

だから私は次link_to_remoteのように接続しました:

私の出荷ボックスの部分:

<div class="shipping_box" id="shipping_box">
    #some code
    <%= link_to_remote "Add box conents", :url => {:action=> 'add_box_contents'} %>
</div>

add_box_contents.rjs

page.insert_html :bottom, "shipping_box", :partial => 'box_content', :object => BoxContent.new

そして_box_content.erb

<div class="box_contents" id="box_contents">
   box contents partial rendered
</div>

最初の配送ボックスではすべて正常に動作しますが、2 つ目の配送ボックスが動的に追加されると、_box_content.erbパーシャルは常に<div>最初のボックスでレンダリングされます。もちろん、これは ID が として指定されてshipping_boxおり、すべてのボックスがこの ID を共有しているためです。私の質問は、最初のボックスだけでなく、正しいボックスの div で新しいボックスのコンテンツを部分的にレンダリングするにはどうすればよいですか?

このスクリーンショットは、動的に追加された 2 つのコンテンツ行 (ドロップダウン) を持つ最初のボックスを示しています。2 番目のボックスの「add order line item」行で、2 番目のボックスのコンテンツにドロップダウン リストを追加したいと考えています。 代替テキスト http://img12.imageshack.us/img12/6274/screenshot20100622at114.png

4

2 に答える 2

0

実際には、対応する部分のみが配送ボックスに追加されるように、部分的な「select_order_line」をレンダリングする必要があります。したがって、それを因数分解すると、次のように書くことができます。

page.insert_html :bottom, "box_content", :partial => 'select_order_line'
于 2010-07-19T19:11:11.363 に答える
0

あなたのrjsはおそらくreplace_html()代わりに使用する必要がありますinsert_html()

page.replace_html "shipping_box", :partial => 'box_content', :object => BoxContent.new
于 2010-06-23T02:47:47.337 に答える