كيفية إضافة جميع الأعضاء في مجموعة جديدة؟

مرحباً،

أود إضافة جميع الأعضاء إلى مجموعة جديدة، ولكن عندما أحاول نسخ ولصق قائمة كبيرة من أسماء المستخدمين مفصولة بفاصلة، أحصل على خطأ.

يعمل الأمر عند محاولة استيراد 100، ولكن لدي 40 ألف عضو لإضافتهم..

في الماضي، كان من الممكن استيراد ما يصل إلى 10 آلاف.

أي أفكار؟

إعجاب واحد (1)

نعم، لست متأكدًا من أن واجهة المستخدم تضيف آلاف المستخدمين دفعة واحدة. أعتقد أنه يمكنك القيام بذلك عن طريق إنشاء مجموعة جديدة ثم استخدام وحدة تحكم Rails لإضافة المستخدمين ذوي مستوى الثقة: 0 إلى تلك المجموعة. إذا قررت اتباع هذا المسار، فتأكد من عمل نسخة احتياطية أولاً.

إعجابَين (2)

لماذا؟ ما المشكلة التي يحلها هذا؟ هل تخطط لإزالة بعضهم لاحقًا؟ لماذا لا تستخدم trust_level_0 أو trust_level_1؟ من المحتمل أن يكون أيًا كان ما تحاول القيام به، فإن إضافة جميع المستخدمين إلى مجموعة ليست طريقة جيدة لحل المشكلة.

يمكنك القيام بذلك من خلال Rails. أعتقد أن هذا سيعمل.

group=Group.find_by_name('my_group')
User.all.each do |user|
  GroupUser.create!(user_id: user.id, group_id: group.id)
end

لقد كتبت إضافة قد تساعد، على الرغم من أنها ليست مختبرة جيدًا وقد واجه شخص حاول استخدامها مشكلة. إذا كانت لديك ميزانية أو كنت شجاعًا، يمكنك الاتصال بي.

3 إعجابات

نعم، أنا فقط أستخدم Trust_level_0 في أي وقت أحتاج فيه إلى استهداف جميع الأعضاء.

إعجاب واحد (1)

أود أن أذكر في موضوع (وإخطار بالبريد الإلكتروني) جميع الأعضاء. هل سيعمل هذا مع مجموعة مستوى Trust_level_0؟ من الناحية المثالية، أفضل إنشاء مجموعة جديدة لتخصيص اسم المجموعة.

ربما يكون لديك فئة إعلانات وتضبط الجميع لمراقبة تلك الفئة؟
يمكنك إضافة الجميع من خلال Rails كما اقترحت، لكن هذا لن يضيف مستخدمين جدد.
ربما يمكنك إلقاء نظرة على المكون الإضافي للأتمتة وعضوية المجموعة من خلال الشارات. يبدو أنه يمكنك إنشاء شارة مخصصة تضيف المستخدمين الذين لديهم هذه الشارة إلى المجموعة: Discourse Automation

3 إعجابات

إذا كان لديك أكثر من 100 مستخدم، فسيتعين عليك تغيير إعداد max users notified per group mention.

إعجابَين (2)

نعم، نقطة جيدة! شكراً، لقد نسيت هذا الإعداد. :slight_smile:

إعجاب واحد (1)

الحد الأقصى لعدد المستخدمين الذين يمكنك إضافتهم في المرة الواحدة إلى نموذج “إضافة مستخدمين” للمجموعة هو 1000. بالنظر إلى الكود، يبدو أنك ستحصل على رسالة خطأ مشابهة لهذه إذا حاولت إضافة المزيد:

“لا يمكن إضافة أكثر من 1000 مستخدم في المرة الواحدة.”

يجب أن يكون هناك نوع من الحد، وإلا فإن Discourse معرض لخطر حدوث خطأ غير معالج. للتغلب على هذا الحد، يعجبني نهج “إضافة المكون الآلي” الذي اقترحه جاي.

إعجابَين (2)

لماذا لا تستخدم الواجهة المغلفة group.add(user)؟ ألن تكون هناك مشاكل محتملة مع معالجة ActiveRecords مباشرة بهذه الطريقة؟

إعجاب واحد (1)

أنا متأكد من أن هذا هو أفضل حل (وأبسطه) لحالة استخدام @kam44.

ولكن من الجيد جدًا معرفة كيفية إضافة أشخاص إلى مجموعة من وحدة تحكم Rails: سيكون هذا مفيدًا لدمج المجموعات الكبيرة، وهو ما اضطررت إلى القيام به في بعض الأحيان!

إعجابَين (2)

لماذا لا بالفعل؟ لست متأكدًا لماذا لم أر ذلك عندما بحثت قبل فترة.

ليس من الخطير استدعاء أشياء السجلات النشطة. إنه يفرض القواعد التي يحتاجها.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.