[openstreetmap/openstreetmap-website] Before/after id pagination for user diary comments (PR #4239)
Anton Khorev
notifications at github.com
Sat Sep 9 10:22:08 UTC 2023
@AntonKhorev commented on this pull request.
> + def get_page_items(items, includes)
+ id_column = "#{items.table_name}.id"
+ page_items = if params[:before]
+ items.where("#{id_column} < ?", params[:before]).order(:id => :desc)
+ elsif params[:after]
+ items.where("#{id_column} > ?", params[:after]).order(:id => :asc)
+ else
+ items.order(:id => :desc)
+ end
+
+ page_items = page_items.limit(20)
+ page_items = page_items.includes(includes)
+ page_items = page_items.sort.reverse
+
+ newer_items_id = page_items.count.positive? && items.exists?(["#{id_column} > ?", page_items.first.id]) && page_items.first.id
+ older_items_id = page_items.count.positive? && items.exists?(["#{id_column} < ?", page_items.last.id]) && page_items.last.id
I wrote it differently first, then Rubocop complained and told that those x = a && b are also an option.
--
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/pull/4239#discussion_r1320533261
You are receiving this because you are subscribed to this thread.
Message ID: <openstreetmap/openstreetmap-website/pull/4239/review/1618609840 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/rails-dev/attachments/20230909/40e549cc/attachment.htm>
More information about the rails-dev
mailing list