Wenn Sie nur eine einzelne Topic-ID speichern müssen (wie einen konfigurierbaren Wert), ist der einfachste Discourse-native Weg die Verwendung einer SiteSetting.
Sie erhalten außerdem automatisch eine integrierte Admin-Benutzeroberfläche.
config/settings.yml:
plugins:
my_plugin_enabled:
default: true
client: false
my_plugin_topic_id:
default: 0
client: false
type: topic # erstellt einen Themenwähler in der Admin-Benutzeroberfläche
In Ihrem Ruby-Plugin-Code:
topic_id = SiteSetting.my_plugin_topic_id
topic = Topic.find_by(id: topic_id)
Wenn Sie es vorziehen, es programmatisch zu speichern (nicht als Einstellung verfügbar gemacht), ist PluginStore ebenfalls für ein einzelnes Schlüssel-Wert-Paar geeignet:
store = PluginStore.new("my_plugin")
store.set("topic_id", some_topic_id)
topic_id = store.get("topic_id")