ここでは他のすべてのは、will_paginateとのトラブルを抱えて、この問題を読み取るための私の解決策は、私自身の答え、です:
は、このようなApplicationControllerにメソッドを作成します。
def paginate_collection(collection, page, per_page)
page_results = WillPaginate::Collection.create(page, per_page, collection.length) do |pager|
pager.replace(collection)
end
collection = collection[(page - 1) * per_page, per_page]
yield collection, page_results
end
次に、あなたが得たあなたのコントローラにページ分割されなければならないコレクション:
page = setup_page(params[:page]) # see below
@messages = Message.inbox(account)
paginate_collection(@messages, page, Message.per_page) do |collection, page_results|
@messages = collection
@page_results = page_results
end
そして、あなたのビューで:
<% @messages.each do |message| %>
<%# iterate and show message titles or whatever %>
<% end %>
<%= will_paginate @page_results %>
定義さpage
変数を取得するには、この点を確認してください。
def setup_page(page)
if !page.nil?
page.to_i
else
1
end
end
のでpage = setup_page(params[:page])
は、その簡単な方法で、トリックを行います。
このWORKS!
これはあなたに役立つ情報ではありません。 ':page => page'の' page'はどこから来ますか?また、ここで 'sort'を使うのは良い考えではないと思います。データベースレコードをソートする場合は、 ':order => ...'を使用するのがよいでしょう。 – Mischa
ページ= setup_page(params [:page])| => | if!arg1.nil? arg1.to_iを返し、そうでなければ1を返します。 arg1はparams [:page] –
will_paginate gemの '〜> 3.0.pre4'バージョンを使用してください。次に、per_pageを 'YoutubeVideo.per_page = 10'のように割り当てます。それは動作するはずです! – mislav