1

エラーが発生しましたwill_paginate gem

コントローラーで

@like_posts = current_user.likes.order("created_at DESC").page(params[:page]).per_page(10).map(&:post)

ビューで使用する場合

<%= will_paginate(@like_posts) %><br/>
<%= page_entries_info(@like_posts) %><br/>

このエラーが発生しました

undefined method `total_pages' for #<Array:0xaae2dec>

24: <%= will_paginate(@like_posts) %><br/>
25: <%= page_entries_info(@like_posts) %><br/>

変更した場合は、コントローラーでこれを作成します

   @like_posts = current_user.likes.order("created_at DESC").map(&:post).page(params[:page]).per_page(10)

私はこのエラーがあります

 undefined method `page' for#<Array:0xabcd34c>

助けはありますか?

4

2 に答える 2

1

ページネーションを静的配列で機能させたいという私の主な問題は非常に危険であるため、will_paginateはそれを拒否し、データベースからのクエリを操作したい

will_paginate のトラブルシューティングはこちら

https://github.com/mislav/will_paginate/wiki/トラブルシューティング

私は2つのオブジェクトを作ることでそれを解決します

   @likes = current_user.likes.order("created_at DESC").page(params[:page]).per_page(5)
   @like_posts = @likes.map(&:post)

ビューで

  <%= will_paginate @likes %><br/>
  <%= page_entries_info @likes %><br/>

ページネーションには @likes を使用し、投稿の繰り返しには @like_posts を使用します

于 2013-06-01T19:51:32.810 に答える
0

require 'will_paginate/array'の先頭に追加することで解決できる場合がありますapplication_controller.rb

require 'will_paginate/array'

class ApplicationController < ActionController::Base
end
于 2020-07-17T03:48:16.730 に答える