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
-
#set_pagination_limit(limit = nil) ⇒ Object
Sets pagination limit in session with validation Used for both index and show pages via PATCH requests.
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 |