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/Troubleshooting

我通过制作 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 回答