Если вам нужно хранить только один ID темы (например, как настраиваемое значение), самый простой нативный для Discourse способ — использовать SiteSetting.
Вы также автоматически получаете встроенный интерфейс администратора.
config/settings.yml:
plugins:
my_plugin_enabled:
default: true
client: false
my_plugin_topic_id:
default: 0
client: false
type: topic # предоставляет селектор тем в интерфейсе администратора
В вашем Ruby-коде плагина:
topic_id = SiteSetting.my_plugin_topic_id
topic = Topic.find_by(id: topic_id)
Если вы предпочитаете хранить это программно (не как настройку),
PluginStore также подходит для одной пары ключ-значение:
store = PluginStore.new("my_plugin")
store.set("topic_id", some_topic_id)
topic_id = store.get("topic_id")