Сброс пагинации на AJAX уничтожить - PullRequest
0 голосов
/ 10 августа 2010

Я использую will_paginate для разбивки своих результатов на страницы.Большая часть моего сайта - AJAXified.Все записи в представлении можно редактировать / удалять на месте.Эти записи разбиты на страницы.Я хотел бы знать, есть ли способ сбросить нумерацию страниц на AJAX destroy.

Например, скажем, у меня есть 20 записей, по 5 записей на странице.Если пользователь удалит запись, я бы хотел, чтобы ссылки на страницы были сброшены соответствующим образом.Кроме того, мне нужно было бы вставить следующую запись на текущую страницу и отобразить ее вместо удаленной записи.Я просто хотел узнать, есть ли доступный гем / плагин, который мог бы сделать то же самое.Если бы не я, я бы сделал это сам.

Есть ли другая альтернатива подходу к дизайну, который я использую?Возможно, что-то на линиях Twitter / Buzz / Tumblr?Или вы столкнулись с чем-то, что является лучшим / более холодным способом решения этой проблемы?

1 Ответ

1 голос
/ 10 августа 2010

Я понимаю, что просто перезагружать div, содержащий 5 записей, и пагинация не вариант.

Если это так, в методе destroy вы также можете добавить новую запись и перезагрузить нумерацию страниц..

def destroy
  # destroy record 
  ...
  #reload records for current page    
  @models = MyModel.paginate(:page => params[:page])
  render :update do |page|
    #remove record div
    ...
    new_record_to_append = @models[MyModel.per_page - 1]
    #append the last record to the page
    page.insert_html(:bottom, 'content', :partial => 'my_partial', :object => new_record_to_append) if new_record_to_append
    #replace pagination
    page.replace 'pagination', :partial => 'pagination_partial'
  end
end
...