Module: Moar::Controller
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/moar/controller.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#moar(relation) ⇒ ActiveRecord::Relation
Paginates
relation, returning anActiveRecord::Relationwith an offset and limit applied.
Instance Method Details
#moar(relation) ⇒ ActiveRecord::Relation
Paginates relation, returning an ActiveRecord::Relation with
an offset and limit applied. The offset and limit are calculated
based on pagination increments (as specified by either
Moar::Controller::ClassMethods#moar_increments or
Moar::Config#increments), and the current page number (parsed
from the request query param specified by
Moar::Config#page_param).
If the current page number is less than or equal to the number of
pagination increments, the limit will be the pagination increment
corresponding to the current page number. Otherwise, the limit
will be the sum of all increments. For example, if the pagination
increments are [15,20,25], the offsets and limits are:
- page 1: offset 0, limit 15
- page 2: offset 15, limit 20
- page 3: offset 35, limit 25
- page 4: offset 60, limit 60
- page 5: offset 120, limit 60
- page 6: offset 180, limit 60
- ...
29 30 31 32 33 34 35 36 37 |
# File 'lib/moar/controller.rb', line 29 def moar(relation) @moar = Moar::Context.new( _moar_increments || Moar.config.increments, params[Moar.config.page_param].to_i, params[Moar.config.accumulation_param].present? ) relation.offset(@moar.offset).limit(@moar.limit) end |