Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class NotebooksController < ApplicationController
- before_action :set_notebook, only: [:update, :destroy]
- after_action only: [:index] { set_pagination_headers :notebooks }
- def index
- @notebooks = Notebook.page(page).per(per_page)
- render json: @notebooks
- end
- private
- def set_notebook
- @notebook = Notebook.find(params[:id])
- end
- def notebook_params
- params.require(:notebook).permit!
- end
- def page
- @page ||= params[:page] || 1
- end
- def per_page
- @per_page ||= params[:per_page] || 40
- end
- def set_pagination_headers(v_name)
- pc = instance_variable_get("@#{v_name}")
- headers["X-Total-Count"] = pc.total_count
- links = []
- links << page_link(1, "first") unless pc.first_page?
- links << page_link(pc.prev_page, "prev") if pc.prev_page
- links << page_link(pc.next_page, "next") if pc.next_page
- links << page_link(pc.total_pages, "last") unless pc.last_page?
- headers["Link"] = links.join(",") if links.present?
- end
- def page_link(page, rel)
- base_uri = request.url.split("?").first
- end
- end
Add Comment
Please, Sign In to add comment