Qual è il modo migliore per archiviare dati con un plugin?

Se devi memorizzare un solo ID argomento (Topic ID) (come un valore configurabile), il modo più semplice nativo di Discourse è utilizzare un SiteSetting.
Ottieni anche automaticamente un’interfaccia utente amministrativa integrata.

config/settings.yml:
``yml
plugins:
my_plugin_enabled:
default: true
client: false

my_plugin_topic_id:
default: 0
client: false
type: topic # fornisce un selettore di argomenti nell’interfaccia utente amministrativa
``

Nel tuo codice plugin Ruby:
rb topic_id = SiteSetting.my_plugin_topic_id topic = Topic.find_by(id: topic_id)

Se preferisci memorizzarlo programmaticamente (non esposto come impostazione),
PluginStore va bene anche per una singola coppia chiave-valore:

``rb
store = PluginStore.new(“my_plugin”)
store.set(“topic_id”, some_topic_id)

topic_id = store.get(“topic_id”)
``

3 Mi Piace