Module: PaginationConcern

Extended by:
ActiveSupport::Concern
Included in:
RailsPulse::ApplicationController
Defined in:
app/controllers/concerns/pagination_concern.rb

Overview

PaginationConcern

Provides pagination functionality for controllers. Manages pagination limits in session with consistent validation (5-50 range). All pagination limits are clamped to ensure performance and security.

Instance Method Summary collapse

Instance Method Details

#set_pagination_limit(limit = nil) ⇒ Object

Sets pagination limit in session with validation Used for both index and show pages via PATCH requests



11
12
13
14
15
16
17
18
19
20
# File 'app/controllers/concerns/pagination_concern.rb', line 11

def set_pagination_limit(limit = nil)
  limit = limit || params[:limit]
  validated_limit = validate_pagination_limit(limit)
  session[:pagination_limit] = validated_limit if limit.present?

  # Render JSON for direct API calls or AJAX requests (but not partial requests)
  if (request.xhr? && !partial_request?) || (request.patch? && action_name == "set_pagination_limit")
      render json: { status: "ok" }
  end
end