In many cases, it’s very useful and rigorous to set a topic under many categories. Is it possible to do so with Discourse?
AI-generated summary
The discussion revolves around the possibility of assigning a topic to multiple categories in Discourse. mausconi inquires about this feature, and lisajill responds that it’s not possible, suggesting the use of the tagging system instead. Mittineague proposes pinning globally as a potential solution, but lisajill dismisses this idea.
rudzainy shares a use case where assigning a topic to multiple categories would be beneficial and explores possible technical solutions, such as creating a middle table in the database or adding a model class reference. However, merefield points out that the current design of Discourse relies heavily on a single category per topic and that changing this would require significant work and potentially break compatibility with extensions and upgrades. As an alternative, merefield suggests using tags, which can be assigned to multiple topics and appear in multiple tag lists.
No. You’d need to use the tagging system for something equivalent and that would have no hierarchy.
Would Pinning Globally work?
Привет ![]()
Мне интересно узнать, каковы технические ограничения в этом вопросе.
Пример моего сценария использования:
- Тема с заголовком «Местная кухня из Локации A в целом более солёная по сравнению с местной кухней из Локации B»
- где Локация A и Локация B — названия категорий
- есть опрос с вариантами
Согласен,НейтральноиНе согласен - возможность сохранить тему в обеих категориях позволит синхронизировать обсуждения и голоса между категориями с первого дня (или, надеюсь, в течение нескольких дней после создания темы), вместо реактивного подхода, когда дубликаты тем объединяются только после того, как проблема станет вирусной
- крутое кодовое название для этого могло бы быть
anti-cross-categories-topic-duplication-feature/plugin, ха-ха
Моя первая мысль — создать промежуточную таблицу в БД. Ха-ха, так низкоуровнево ![]()
Возможно, есть более удачные решения:
- добавить ссылку на класс модели или ассоциацию
- индексировать список тем, связанных с категорией, в БД и вызывать метод для группировки этих тем при вызове
@category.all_published_topicsили чего-то подобного
Так что просто хотел узнать, есть ли строгие технические табу по этому вопросу, прежде чем углубляться в детали ![]()
Что ж, это довольно просто определить: взгляните на исходный код, это фундаментально для дизайна:
Это один из ключевых функциональных элементов.
Этот единственный атрибут типа integer встречается повсюду в коде модели, API, процессах бэкенда и интерфейсе. Думаю, то же самое можно сказать и о десятках компонентов тем и плагинов.
Вам пришлось бы быть очень смелым, чтобы попытаться изменить такую базовую конструкцию/предположение, и это потребовало бы огромных усилий. Кроме того, вы, вероятно, не сможете использовать многие расширения, доступные в экосистеме.
Скорее всего, вы обнаружите, что обновление экземпляра будет связано с огромными затратами или вообще экономически невозможно.
Могу я предложить вам использовать теги вместо категории?
Тема может иметь множество тегов, поэтому она может отображаться в нескольких списках тегов.
Смотрите: Post Topic in Two Categories?