diff --git a/lib/meilisearch/rails/pagination/will_paginate.rb b/lib/meilisearch/rails/pagination/will_paginate.rb index 92ba5d88..6fcb2d07 100644 --- a/lib/meilisearch/rails/pagination/will_paginate.rb +++ b/lib/meilisearch/rails/pagination/will_paginate.rb @@ -10,6 +10,10 @@ module Rails module Pagination class WillPaginate def self.create(results, total_hits, options = {}) + total_hits = 0 if Utilities.null_object?(total_hits) + options[:page] = 1 if Utilities.null_object?(options[:page]) + options[:per_page] = 1 if Utilities.null_object?(options[:per_page]) + ::WillPaginate::Collection.create(options[:page], options[:per_page], total_hits) do |pager| pager.replace results end diff --git a/lib/meilisearch/rails/utilities.rb b/lib/meilisearch/rails/utilities.rb index bd918b7b..6327bcf8 100644 --- a/lib/meilisearch/rails/utilities.rb +++ b/lib/meilisearch/rails/utilities.rb @@ -56,6 +56,10 @@ def sequel_model?(model_class) defined?(::Sequel::Model) && model_class < Sequel::Model end + def null_object?(obj) + obj.is_a? NullObject + end + private def constraint_passes?(record, constraint)