не получает новые обновленные данные при использовании AJAX при вызове частичного файла - PullRequest
0 голосов
/ 22 августа 2009

Я назвал частичный файл из цикла. теперь, когда я обновляюсь, я на самом деле не получаю обновленный результат, но мне нужно сделать обновление для получения обновленного результата. код такой:

файл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

1 Ответ

0 голосов
/ 24 августа 2009

У вас был большой опыт работы с Rails? Если я правильно истолковываю ваш пост, вы, кажется, поступаете неправильно.

Похоже, вы используете хамл для меня. Если это так, ваши файлы должны выглядеть примерно так:

file1:

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

При этом отдельные папки / group_list визуализируются один раз для каждого элемента в @ folder.

частичный файл:

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

По умолчанию переменная, доступная в частичной части, названа в честь самой частичной. Таким образом, вы получаете идентификатор group_list, а не папки. Вы можете изменить это поведение, передавая: 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
...