【问题标题】:Resetting Pagination on AJAX destroy在 AJAX 销毁时重置分页
【发布时间】:2011-03-27 15:57:26
【问题描述】:
我正在使用 will_paginate 对结果进行分页。我的大部分网站都是 AJAXified。视图中的所有记录都可以就地编辑/删除。这些记录是分页的。我想知道是否有任何方法可以重置 AJAX 销毁的分页。
例如,假设我有 20 条记录,每页显示 5 条记录。如果用户删除记录,我希望分页链接相应地重置。此外,我必须将下一条记录拉入当前页面并显示它以代替已删除的记录。我只是想知道是否有一些可用的 gem/plugin 可以做同样的事情。如果不是,我将不得不自己做一个。
我使用的设计方法还有其他替代方法吗?也许在 Twitter/Buzz/Tumblr 分页上的东西?或者您是否遇到过更好/更酷的解决此问题的方法?
【问题讨论】:
标签:
jquery
ruby-on-rails
pagination
【解决方案1】:
我了解仅重新加载包含 5 条记录的 div 和分页不是一种选择。
如果是这种情况,在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