Discourse アプリケーションで、返信数に応じてトピックを表示したいのですが、Rails クエリは作成できましたが、ビューの部分が見つかりません。どこに表示し、このスコープを追加すればよいでしょうか。
Discourse の動作を変更したい場合は、Developing Discourse Plugins - Part 1 - Create a basic plugin を参照するか、Beginner’s guide to developing Discourse Themes を参照してください。
新しいプラグインを作成したくありません。バックエンド側でカテゴリとトピックのクエリを変更し、ビューに表示したいだけですが、トピックリンクのリストがどこに表示されるのか見つけられません。
サイモン、ありがとうございます。
これで解決すると思います。
コードを変更する必要はないと思いますが、サイトのホームページにトピックが新しい順序で表示されるようにするには、サイトのレールコンソールからコマンドを実行する必要があるかもしれません。
desktop category page style サイト設定で「Featured Topics を持つカテゴリ」を選択すると、表示される Featured Topics の順序は、各カテゴリの「Topic List Sort By」設定の値によって決まります。残念ながら、カテゴリの「Topic List Sort By」設定を変更しても、その変更はサイトのホームページにすぐに表示されません。Discourse がホームページに表示される Featured Topics をキャッシュしている場所、または Discourse がキャッシュを破棄するために使用するアクションが何であるかはわかりません。
自分のサイトでテストしたところ、レールコンソールから次のコマンドを実行することでキャッシュを破棄できることがわかりました。
# 結果を修正したいカテゴリを変数に割り当てます。例:
c = Category.find(42)
# 次に実行します
CategoryFeaturedTopic.feature_topics_for(c)
これを実行すると、トピックは、カテゴリの「Topic List Sort By」設定で選択した順序でホームページに表示されるはずです。このコマンドを実行しても問題が発生するとは思えませんが、レールコンソールからコマンドを実行する際は常に注意してください。
もっと簡単な方法があるはずです。おそらく、Discourse が古い Featured Topics リストのキャッシュを破棄するまで最大24時間待つだけでよいでしょう。コードのどこでキャッシュが破棄されているのか見つけられません。関連するコードは次のとおりのようです: discourse/app/models/category_featured_topic.rb at main · discourse/discourse · GitHub
このクエリを実行しましたが、主な問題は、これらの注目のトピックがホームのどこに表示されるか、UIにこのデータを表示するためのコードがどの.htmlファイルにあるかということです。
必要なデータを並べ替えるためのクエリはすでに作成しましたが、問題は、クエリをどのモデルに配置するかということです。

