【问题标题】:How do I Override pagination links generated by active_model_serializers如何覆盖由 active_model_serializers 生成的分页链接
【发布时间】:2016-07-17 01:10:52
【问题描述】:

我想覆盖由active_model_serializerskaminari 关联生成的分页链接。我如何实现这一点,this page 上没有关于覆盖的信息

而且生成的链接是这个顺序>> {"self", "first", "prev", "next", "last"}

我希望它们按这个顺序排列>> {"first", "prev", "self", "next", "last"}

下面是管理员控制器的 index 方法的 sn-p:

  def index
    @search = Admin.search(params[:q])
    if params[:page]
      @admins = @search.result(:distinct => true).page(params[:page][:number])
    else
      @admins = @search.result(:distinct => true).page(1)
    end
    @admins_json = ActiveModel::SerializableResource.new(@admins)
    @admins_json = @admins_json.to_json(serialization_context: ActiveModelSerializers::SerializationContext.new(request))
    @page_entries_info = view_context.page_entries_info @admins
    # render json: @admins
    respond_to do |format|
      format.html
      format.js
      format.json { render :json => @admins, meta: {:page_entries_info => @page_entries_info} }
    end
  end

【问题讨论】:

  • 你是如何渲染你的链接的?
  • 用代码 sn-p 更新了问题
  • 好的,这就是您渲染 JSON 以发送到前端的方式,很酷。澄清一下,Kaminari 是在自己读取元属性吗?或者你是在告诉它如何读取元属性?另外,对于view_context.page_entries_info,它是否包含没有 AMS 的“正常”Kaminari 链接?
  • view_context.page_entries_info包含以下文字,与AMS无关:Displaying users 1 - 10 of 49 in total

标签: ruby-on-rails-4 kaminari active-model-serializers json-api


【解决方案1】:

覆盖文件 pagination_links.rb

/home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/bundler/gems/active_model_serializers-afe3c938070d/lib/active_model_serializers/adapter/json_api/pagination_links.rb的内容复制到#lib/active_model_serializers/adapter/json_api/pagination_links.rb中,随心所欲。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多