2009-08-22 2 views
0

부분 파일을 루프라고 부릅니다. 지금 업데이트 할 때 업데이트 된 결과를 얻지는 않지만 업데이트 된 결과를 얻으려면 새로 고침해야합니다. 코드는 다음과 같다 :부분 파일을 호출 할 때 AJAX를 사용하는 동안 새롭게 업데이트 된 데이터를 가져 오지 못했습니다.

@folder 파일 1

@folders.each do |@folder| 
    = render :partial => 'folders/group_list' 

부분 파일

%div{:id => "group_list_#{@folder.id}"} // this is the div which needs to be updated 
    = group_member(@folder) //this is the helper method 
내가 컨트롤러에서 업데이트 된 @folder 필요

하지만 난 항상 얻을 FILE1의의

컨트롤러 쪽

def any_method 
    .. 
    some code 
    .. 
    @folder = Folder.find(params[:folder_id]) 
    render :partial => '/folders/group_list' 
end 
+0

당신이 아약스 호출을 코드, 그리고 통화 중에 무슨 일이 일어나고 있는지 보여주는 로그의 샘플을 게시 할 수 있습니까? – jdl

+0

RJS를 사용하는 경우 해당 코드도 게시하십시오. – jdl

답변

0

레일스에 많은 경험이 있었습니까? 귀하의 게시물을 올바르게 해석하고 있다면 잘못된 방식으로 일을 진행하는 것처럼 보입니다.

내게 햄을 사용하고있는 것처럼 보입니다. 이 경우 파일은 더 다음과 같아야합니다

파일 1을 :이 @folders의 각 항목에 대해 한 번 부분 폴더/그룹 목록을 렌더링

= render :partial => 'folders/group_list', :collection => @folders 

.

부분 파일 : 기본적으로

%div{ :id => "group_list_#{group_list.id}" 
    = group_member(folder) 

, 부분에서 변수 접근 자체 부분의 이름을 따서 명명된다. 그래서 당신은 폴더가 아닌 group_list의 ID를 얻습니다. : as 인수를 render()에 전달하여이 동작을 수정할 수 있습니다.

컨트롤러 :

def ajax_method 
    @folder = Folder.find(params[:folder_id]) 
    render :update do |page| 
     page.replace "group_list_#{@folder.id}", :partial => 'folders/group_list', :object => @folder 
    end 
end