我有一個控制器Books,在索引操作中我使用的是will_paginate。我也有過濾器冠軍和作者。將text_field的值傳遞給will_paginate作爲Rails參數
每次冠軍或作者變化,我正在調用Ajax獲得更新的版本@books
。
在我index.js.erb的文件,我有我的代碼來渲染視圖:
$('#book_list').html("<%= escape_javascript(render('show_books')).html_safe %>");
我的索引文件是這樣的:
<%= will_paginate @books %>
<ol class="list-unstyled" id="book_list">
<%= render 'show_books' %>
</ol>
<%= will_paginate @books %>
的問題是,will_paginate
不會在AJAX調用後更新。默認情況下,我有45本書(每頁30本,共2頁),在AJAX調用後我得到9本書。它應該只顯示1頁,但它仍然顯示2頁。
如果我把will_paginate
放在book_list裏面,它就會消失。如果我保持在外面,它不會被更新。
另一種選擇是,我可以將自定義參數傳遞給will_paginate
,但我不知道如何在視圖中獲取文本字段的值,並將其作爲參數傳遞給will_paginate
而無需提交。
這些輸入的形式來篩選書籍:
<div class="form-group">
<%= label :title, "Title" %><br>
<%= text_field :book, :title, {class: 'form-control', placeholder: "Book Title" } %>
</div>
<div class="form-group">
<%= label :authors, "Authors" %><br>
<%= text_field :book, :authors, {class: 'form-control', placeholder: "Authors" } %>
</div>