我正在使用will paginate gem进行分页。事情对我来说很好。我正在努力调整它,我遵循了http://railscasts.com/episodes/240-search-sort-paginate-with-ajax辅导的但Ajax请求并没有被我解雇
我有一个索引视图。该视图渲染一个名为"_browser_form"的部分,该部分又渲染一个称为"_listing"的部分。所以我想在_listing中对该表进行分页。如果我的方法有任何错误,请告诉我。
我的控制器:
def index
@ics = Ic.search(params[:root_name],params[:suite_name],params[:case_name],params[:name],'f').paginate(:per_page =>5, :page => params[:all_ics])
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @ics }
end
end
从index.html.haml 渲染的My _browser_form.html.haml
- form_tag "/ics/mass_action", :method => :post, :multipart => true do
<div id="update_ics_table">
= render "listing", :show_check_boxes => show_check_boxes, :root_name=>params[:root_name],:suite_name=>params[:suite_name],:case_name=>params[:case_name],:name=>params[:name],:ic_filter=>1
</div>
=will_paginate @ics,:param_name=>:all_ics
我的index.js.erb文件:
$('#update_ics_table').html("<%= escape_javascript(render :partial => 'listing' ,:object => @ics) %>")
我的.js文件:
$(function () {
$('#update_ics_table .pagination a').live('click',
function () {
$.getScript(this.href);
return false;
}
);
});
谢谢,Ramya。
删除您在Javascript中所做的操作,并在控制器中执行此操作:
format.js {
render :update do |page|
page.replace 'listing', :partial => 'listing'
end
}
类似:使用Ajax 获得will_pageate的最佳方式
这可能与您使用HAML视图和js.erb文件有关,但我不使用HAML,所以我不能确定。看看next3在这个SO上的答案:如何在rails 中发回js.haml
如果不是这样的话,我认为你需要将你的响应控制器动作块更改为:
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @ics }
format.js #<------ This will execute index.js.erb
end