我最近在我的开发博客中安装了will_paginate gem,但我遇到了麻烦。我把它添加到我的gemfile:
gem 'will_paginate'
然后将其送入帖子控制器:
def index
@posts = Post.paginate(:per_page => 5, :page => params[:page], :order => 'created_at DESC')
respond_to do |format|
format.html # index.html.erb
format.json { render json: @posts }
format.atom
end
end
最后进入视图:
<div id="post" style="background-color: gray; border-radius: 20px; border-bottom: solid black 2px; padding-bottom: 40px; padding-top: 40px; margin: auto;">
<%= post.content.html_safe %>
</div>
<br />
<div style="padding-bottom: 40px; background-color: brown;">
<li>Posted: <%= post.created_at.to_formatted_s(:long) %></li>
<li>Author: <%= post.author_name %></li>
<li>Comments: <%= post.comments.count %></li>
</div>
<br />
<br />
<%= will_paginate @posts %>
索引页面工作正常。它目前没有分页,因为我没有在开发环境中创建足够的帖子(将通过管理面板创建它们,遇到这个)。它也可以在Admin面板上正常工作(使用active_admin)。只有当我点击管理面板上的“帖子”(或任何其他链接)来发布新帖子时,我才会收到以下错误:
NoMethodError in Admin::PostsController#index
undefined method `per' for # <ActiveRecord::Relation::ActiveRecord_Relation_Post:0x5b37d30>
我不确定如何继续,并感谢任何帮助。很抱歉这个简单的问题。
答案 0 :(得分:18)
看起来ActiveAdmin使用Kaminari进行分页,与will_paginate冲突。
# config/initializers/kaminari.rb
Kaminari.configure do |config|
config.page_method_name = :per_page_kaminari
end