أود عرض شارات صغيرة لجميع مجموعات المستخدم في كل مشاركة في موضوع (تحت اسم المستخدم). لقد نجحت في الوظائف الأساسية، لكنني واجهت صعوبة في العثور على مجموعات المستخدم الذي قام بالمشاركة. في سمات (attrs) أداة ما بعد البيانات الوصفية للمشاركة (post-meta-data widget)، يمكنني العثور على بعض تفاصيل المستخدم، ولكن المجموعات غير مدرجة. أعتقد أنني بحاجة إلى إضافة المجموعات إلى مسلسل المشاركة (post serializer)، لكنني لست متأكدًا من كيفية القيام بذلك.
مرحباً،
لست خبيراً – في إضافة، يمكنك إضافة حقل groups إلى مُسلسِل المنشور، شيء من هذا القبيل:
add_to_serializer(
:post,
:groups
) { object.user&.groups }
ومع ذلك، ضع في اعتبارك أنه بهذه الطريقة، يمكن لأي شخص رؤية المجموعة التي ينتمي إليها الشخص.
وبالتالي، أعتقد أنه طالما أنك تستخدم شارة (flair)، فإن اسم المجموعة سيكون مرئياً لأي شخص، بغض النظر عن الأذونات.
يمكنك أيضاً إدراج حقل available_flairs جديد لإرجاع الحقول الضرورية فقط لشارات المجموعة:
add_to_serializer(:post, :available_flairs) do
flairs = Array(object.user&.groups&.map do |group|
next unless group.flair_url
{
id: group.id,
name: group.name,
url: group.flair_url,
bgColor: group.flair_bg_color,
color: group.flair_color
}
end).compact
flairs
end
آمل أن يساعد هذا. ![]()
قد يكون هذا المكون مثيرًا للاهتمام أثناء إنشاء المنشور، ربما لإضافة علامات للمنشور أثناء الإنشاء؟
الحل الثاني هو بالضبط ما أبحث عنه، لكن لا يمكنني جعله يعمل. لسبب ما، لا يظهر مصفوفة available_flairs على الإطلاق. هل أفترض بشكل صحيح أن الكود يجب أن يذهب إلى plugins.rb؟
للظهور في سياق post-meta-data، جرب استخدام واجهة برمجة التطبيقات. يجب أن يعمل هذا!
api.includePostAttributes("available_flairs");
لقد نجح الأمر. شكراً على المساعدة!
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
