将text_field值传递给will_paginate作为Rails中的参数

我有一个Books的控制器,在索引操作中我使用的是will_paginate 。 我还有标题作者的filter。

每次标题作者更改时,我都会进行ajax调用以获取@books更新版本。

在我的index.js.erb文件中,我有我的代码来呈现视图:

 $('#book_list').html(""); 

我的索引文件如下所示:

  

问题是,AJAX调用后will_paginate不会更新。 默认情况下我有45本书(每页30本书,共2页),在AJAX通话后我得到9本书。 它应该只显示1页,但它仍然显示2页。

如果我把will_paginate放在book_list中 ,它就会消失。 如果我留在外面它将不会更新。

另一个选择是,我可以将自定义参数传递给will_paginate ,但我不知道如何在视图中获取文本字段的值并将其作为参数传递给will_paginate而不提交。

这些是过滤书籍的输入表格:

 


我在这里看到你的postRails3:如何将param传递给自定义的will_paginate渲染器? 同时试图找到一种方法来动态更改will_paginate生成的页面链接,以包含来自用户的信息。

在我的情况下,用户可以选择一个图表来显示will_paginate显示的数据,但是默认的页面链接不会传递任何额外的参数,因此他们选择的图表不会保存在页面之间。

我的解决方案是覆盖链接,在每个链接中包含一个自定义类,然后我可以在页面目标上使用javascript并调整其属性。

这是我的覆盖代码

 module Pageoverride class PaginationListLinkRenderer < WillPaginate::ActionView::LinkRenderer protected def link(text, target, attributes = {}) if target.is_a? Fixnum attributes[:rel] = rel_value(target) target = url(target) end attributes[:href] = target attributes[:class] = 'chartpagetest' tag(:a, text, attributes) end end end 

我做的唯一更改是在属性数组中添加一个:class键,其值为我的自定义类标识符

我在will_paginate调用中包含自定义渲染器

 <%= will_paginate(@dbtests, :renderer => Pageoverride::PaginationListLinkRenderer) %> 

我的Javascript定位与我的类匹配的元素,我从变量“chart_id”广告中获取当前数据,并将其附加到每个元素的“href”属性的末尾。

 for (index = 0; index