Sie können dies mit einem einfachen Plugin tun.
Was Sie tun müssen
Das Plugin muss Folgendes tun:
-
Fügen Sie ein benutzerdefiniertes Feld für Benutzer namens
known_tagshinzu, eine Liste von Zeichenfolgen. -
Fügen Sie eine Benutzeroberfläche im Benutzerprofil hinzu, in der der Benutzer
known_tagsbearbeiten kann. Ich glaube nicht, dass es notwendig ist, dafür einen völlig neuen Profil-Tab hinzuzufügen, aber Sie könnten es tun, wenn Sie möchten. Wenn Sie nicht möchten, dass Benutzer es selbst bearbeiten, machen Sie es nur für Administratoren bearbeitbar und gehen Sie einfach in die Benutzerprofile und aktualisieren Sie es anhand Ihrer CSV-Datei. -
Fügen Sie einen Event-Hook hinzu, der die Ereignisse
before_create_postoderpost_createdimPostCreatorverwendet, um den gewünschten Inhalt basierend auf den Tags im Thema zum Beitrag hinzuzufügen.
Wie es geht
Teile 1 und 2 sind den Beispiel-Plugins für andere Modelle im unten verlinkten Thema sehr ähnlich. Versuchen Sie, es analog herauszufinden. Wenn Sie wirklich nicht weiterkommen, fragen Sie mich nach einem Hinweis.
Teil 3 kommt ebenfalls in Ihre plugin.rb-Datei. Es wird ungefähr so aussehen
on(:post_created) |post, opts, user|
if post.is_first_post? && post.topic.tags.present?
user_ids = UserCustomField.where(name: 'known_tags', value: post.topic.tags).pluck(:user_id)
usernames = User.where(id: user_ids).pluck(:username)
new_raw = post.raw + "etwas etwas #{usernames}"
PostRevisor.new(post).revise!(
user,
{
raw: new_raw,
edit_reason: "ein Grund"
},
skip_validations: true,
bypass_bump: true
)
end
end
Versuchen Sie es selbst. Wenn Sie wirklich nicht weiterkommen, werde ich helfen. Ich bin immer eher bereit zu helfen, wenn es starke Beweise dafür gibt, dass Sie versuchen, es selbst herauszufinden ![]()