2009-08-22 3 views
0

Ich habe die Teildatei die Schleife aufgerufen. Jetzt, wenn ich update, bekomme ich nicht wirklich aktualisiert Ergebnis, sondern muss aktualisieren, um aktualisierte Ergebnisse zu bekommen. der Code wie folgt aus:nicht erhalten neue aktualisierte Daten bei der Verwendung von AJAX in Aufruf partielle Datei

die file1

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

die Teildatei

%div{:id => "group_list_#{@folder.id}"} // this is the div which needs to be updated 
    = group_member(@folder) //this is the helper method 

ich die aktualisierte @folder von der Steuerung benötigen, aber ich immer file1 der @folder

bekommen

Steuerungsseite

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

Können Sie nach dem Code, der die Ajax-Aufruf macht, und eine Probe der Protokolle zeigt, was während dieses Anrufs geschieht? – jdl

+0

Und wenn Sie RJS verwenden, schreiben Sie diesen Code auch. – jdl

Antwort

0

Haben Sie mit Rails viel Erfahrung? Wenn ich deinen Beitrag richtig interpretiere, scheinst du Dinge in die falsche Richtung zu gehen.

Es sieht aus wie Sie haml zu mir verwenden. Wenn ja, sollten Sie Ihre Dateien aussehen wie folgt aus:

file1:

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

Diese in @folders für jedes Element einmal die Teil Ordner/GROUP_LIST macht.

Teil Datei:

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

standardmäßig die Variablen zugänglich im Teil wird nach dem Teil selbst benannt. Sie erhalten also die ID der group_list, nicht des Ordners. Sie können dieses Verhalten ändern, indem Sie das Argument: as an rendern() übergeben.

Controller:

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 
Verwandte Themen