我在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>
任何帮助?
答案 0 :(得分:0)
我的主要问题是我希望分页能够在静态数组上运行而且非常危险,所以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迭代帖子
答案 1 :(得分:0)
可以通过在您的require 'will_paginate/array'
顶部添加application_controller.rb
来解决此问题:
require 'will_paginate/array'
class ApplicationController < ActionController::Base
end