Am einfachsten, könnte aber je nachdem, was Sie tun möchten, eingeschränkt sein.
Machbar, aber komplexer. Werfen Sie einen Blick darauf, wie TopicQuery Listen implementiert
und speziell
def list_hot
create_list(:hot, unordered: true, prioritize_pinned: true) do |topics|
topics = remove_muted(topics, user, options)
topics.joins("JOIN topic_hot_scores on topics.id = topic_hot_scores.topic_id").order(
"topic_hot_scores.score DESC",
)
end
end
Sie können relativ einfach eine zusätzliche hinzufügen, obwohl Sie einige bewegliche Teile berücksichtigen müssen. Ich habe das in meinem Plugin ‘homepage-filter’ getan, und das könnte ein guter Ausgangspunkt sein.