2010-06-23 2 views
0

나는 사용자가 배송 상자에 새 내용을 추가 할 수 있도록하는 작업을하고 있습니다. 예 :rails rjs의 부모 요소 ID를 얻으려면

사용자가 배송을 설정 중이며 각 발송물에는 여러 개의 상자가 포함될 수 있으며 각 상자에는 여러 개의 내용이 포함될 수 있습니다.

부분 내 배송 상자에서

:

<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 

<div class="box_contents" id="box_contents"> 
    box contents partial rendered 
</div> 
_box_content.erb에서

link_to_remote처럼 연결 그래서 한

내 첫 배송 상자의 경우 모든 것이 정상적으로 작동하지만 두 번째 배송 상자를 동적으로 추가하면 _box_content.erb 부분은 항상 첫 번째 상자의 <div>에 렌더링됩니다. 물론 이것은 id가 shipping_box으로 지정되었고 모든 상자가이 ID를 공유하기 때문입니다. 내 질문에 다음, 새 상자 내용 일부를 div에 올바른 상자를 포함하여 표시하려면 어떻게해야합니까?

이 스크린 샷은 2 개의 동적으로 추가 된 내용 라인 (드롭 다운)이있는 첫 번째 상자를 보여줍니다. 두 번째 상자의 내용에 "두 번째 상자의 목록 추가"줄을 사용하여 드롭 다운 목록을 추가하고 싶습니다. alt text http://img12.imageshack.us/img12/6274/screenshot20100622at114.png

+0

호기심에서 벗어나 jRails 플러그인을 사용하고 있습니까? (그렇다면 jQuery를 사용할 수 있습니다.) –

+0

현재로서는 아니지만 가장 깨끗한 방법은 내가 할 수있는 것입니다. 너의 제안은 뭐니? – SooDesuNe

답변

0

귀하의 RJS 아마도 당신은 실제로에만 해당하는 부분이 배송 상자에 추가 될 수 있도록, 부분 "select_order_line"를 렌더링 할 replace_html() 대신

page.replace_html "shipping_box", :partial => 'box_content', :object => BoxContent.new 
+0

새 상자 내용의 인스턴스를 여러 개 추가하려고합니다. 나는 설명을 위해 스크린 샷을 추가했다. – SooDesuNe

0

insert_html()의 사용되어야한다. 그냥 빼면 다음과 같이 쓸 수 있습니다 :

page.insert_html :bottom, "box_content", :partial => 'select_order_line' 
관련 문제