我在 discourse 应用程序中进行了更改,我想根据回复数量显示主题。我创建了一个 rails 查询,但我找不到视图部分,我需要在哪里显示并添加此范围。
如果您想更改 Discourse 的行为方式,您需要查看 开发 Discourse 插件 - 第 1 部分 - 创建一个基本插件 或 开发 Discourse 主题的初学者指南。
我不想创建新插件,我只想从后端更改类别和主题查询,并想在视图中显示,但找不到主题链接列表显示在哪里。
好的,西蒙,谢谢你。
我认为这会帮到我。
我认为您无需修改代码,但可能需要从您网站的 rails 控制台运行一个命令,以使主题按新顺序显示在您网站的主页上。
当您为 desktop category page style 网站设置选择“具有精选主题的类别”时,精选主题的显示顺序应由每个类别的“主题列表排序依据”设置的值决定。不幸的是,如果您更改了类别的“主题列表排序依据”设置,该更改不会立即显示在网站主页上。我不确定 Discourse 在何处缓存主页上显示的精选主题,或者 Discourse 使用什么操作来触发打破缓存。
通过在我自己的网站上进行测试,我发现可以通过在 rails 控制台中运行以下命令来打破缓存:
# 将您要修复结果的类别分配给一个变量,例如:
c = Category.find(42)
# 然后运行
CategoryFeaturedTopic.feature_topics_for(c)
运行此命令后,主题应按您为类别“主题列表排序依据”设置选择的顺序显示在主页上。我认为运行此命令不会造成任何问题,但在运行 rails 控制台命令时请务必小心。
我确信有更简单的方法可以做到这一点。也许您只需要等待最多 24 小时,Discourse 就会打破旧的精选主题列表的缓存。我没有在代码中看到缓存被打破的地方。相关代码似乎在这里:discourse/app/models/category_featured_topic.rb at main · discourse/discourse · GitHub
我执行了该查询,但主要问题是这些特色主题显示在主页的哪个位置,在哪个 .html 文件中有将此数据显示在 UI 上的代码。
我已经为我需要排序的数据编写了查询,但问题是我应该将查询放在哪个模型中。

