Ruby on Rails使用active_admin和ransack,对active_admin:resource的页面调度错误

问题描述 投票:1回答:1

错误:集合不是分页作用域。 在调用:paginated_collection之前,设置collection.page(params [:page])。per(10)。

unless collection.respond_to?(:num_pages)
          raise(StandardError, "Collection is not a paginated scope. Set collection.page(params[:page]).per(10) before calling :paginated_collection.")
        end
        @contents = div(class: "paginated_collection_contents")

application_controller:

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
  helper_method :all_categories
  helper_method :all_posts
  before_filter :site_search
  def all_categories
    @categories = Category.all
  end
  def all_posts
    @all_posts = Post.all
  end
  def site_search
      @q = Post.ransack(params[:q])
      #@posts_search = @q.result(distinct: true)
      @search_posts = @q.result(distinct: true)
  end
end

ActiveAdmin资源:发布

 ActiveAdmin.register Post do
  permit_params   :title, :body, :category_id, :admin_user_id
  menu :label => "Blog Posts"
  index do
  column :title
    column "Author",:admin_user
    column :category
    column :created_at
    default_actions
  end
  end

帖子控制器的索引方法:

 def index
      #@content_first = Post.find(1).title
      #@content_second = "This is 2";
      @q = Post.ransack(params[:q])
      @posts = @q.result(distinct: true)
      #@posts = Post.all
    end
 end
ruby-on-rails ruby activeadmin ransack meta-search
1个回答
1
投票

弄清楚了。 我没有完全改变模型。 对于那些有类似问题的人:1.尝试重命名变量2.检查模型

© www.soinside.com 2019 - 2024. All rights reserved.