يمكنك القيام بذلك باستخدام إضافة بسيطة.
ما تحتاج إلى القيام به
ستحتاج الإضافة إلى القيام بما يلي:
-
إضافة حقل مخصص للمستخدم يسمى
known_tags، وهو قائمة من السلاسل النصية. -
إضافة واجهة في ملف تعريف المستخدم حيث يمكن للمستخدم تعديل
known_tags. لا أعتقد أنه من الضروري إضافة علامة تبويب جديدة تمامًا للملف الشخصي لهذا الغرض، ولكن يمكنك فعل ذلك إذا أردت. إذا كنت لا تريد أن يقوم المستخدمون بتعديلها بأنفسهم، فاجعلها قابلة للتعديل فقط من قبل المسؤولين وادخل إلى ملفات تعريف المستخدمين وقم بتحديثها بناءً على ملف CSV الخاص بك. -
إضافة خطاف حدث يستخدم أحداث
before_create_postأوpost_createdفيPostCreatorلإضافة المحتوى الذي تريده إلى المنشور بناءً على العلامات في الموضوع.
كيف تفعل ذلك
الجزءان 1 و 2 متشابهان جدًا مع الإضافات النموذجية لنماذج أخرى في الموضوع المرتبط أدناه. حاول اكتشاف الأمر بالقياس. إذا واجهت صعوبة حقًا، فاطلب مني توجيهًا هناك.
سيتم وضع الجزء 3 أيضًا في ملف plugin.rb الخاص بك. سيبدو شيئًا كهذا
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 + "شيء ما شيء ما #{usernames}"
PostRevisor.new(post).revise!(
user,
{
raw: new_raw,
edit_reason: "سبب ما"
},
skip_validations: true,
bypass_bump: true
)
end
end
حاول بنفسك. إذا واجهت صعوبة حقًا، فسأساعد. أنا دائمًا أميل أكثر إلى المساعدة إذا كان هناك دليل قوي على أنك تحاول اكتشاف الأمر بنفسك ![]()