mirror of
https://github.com/discourse/discourse.git
synced 2025-06-03 02:48:28 +08:00
FIX: Count clicks on links with query params (#15969)
This did not work sometimes if a topic had the same URL with and without query params because it did not try to select the best matching URL.
This commit is contained in:
@ -70,17 +70,17 @@ class TopicLinkClick < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
link = TopicLink.select([:id, :user_id])
|
||||
|
||||
# test for all possible URLs
|
||||
link = link.where(Array.new(urls.count, "url = ?").join(" OR "), *urls)
|
||||
link = TopicLink.where(url: urls)
|
||||
|
||||
# Find the forum topic link
|
||||
link = link.where(post_id: args[:post_id]) if args[:post_id].present?
|
||||
|
||||
# If we don't have a post, just find the first occurrence of the link
|
||||
link = link.where(topic_id: args[:topic_id]) if args[:topic_id].present?
|
||||
link = link.first
|
||||
|
||||
# select the TopicLink associated to first url
|
||||
link = link.order("array_position(ARRAY[#{urls.map { |s| "#{ActiveRecord::Base.connection.quote(s)}" }.join(',')}], url::text)").first
|
||||
|
||||
# If no link is found...
|
||||
unless link.present?
|
||||
|
Reference in New Issue
Block a user