안녕하세요,
새로운 그룹에 모든 멤버를 추가하려고 하는데, 쉼표로 구분된 대량의 사용자 이름 목록을 복사하여 붙여넣으려 하면 오류가 발생합니다.
100명까지는 정상적으로 가져올 수 있지만, 추가해야 할 멤버가 4만 명이나 됩니다.
과거에는 최대 1만 명까지 가져올 수 있었습니다.
해결 방안이 있을까요?
안녕하세요,
새로운 그룹에 모든 멤버를 추가하려고 하는데, 쉼표로 구분된 대량의 사용자 이름 목록을 복사하여 붙여넣으려 하면 오류가 발생합니다.
100명까지는 정상적으로 가져올 수 있지만, 추가해야 할 멤버가 4만 명이나 됩니다.
과거에는 최대 1만 명까지 가져올 수 있었습니다.
해결 방안이 있을까요?
네, UI에서 수천 명의 사용자를 일괄 추가하는 것이 가능한지 확신이 서지 않습니다. 새로운 그룹을 만든 후, rails 콘솔을 통해 trust_level: 0인 사용자를 해당 그룹에 추가하는 방식으로 처리할 수 있다고 생각합니다. 이 방법을 선택하시려면 반드시 먼저 백업을 해두세요.
왜 그러시나요? 이 방법으로 해결하려는 문제는 무엇인가요? 나중에 그중 일부만 삭제할 계획인가요? 그냥 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
도움이 될 수 있는 플러그인을 하나 작성했지만, 잘 테스트되지 않았으며 사용해 본 누군가가 문제를 겪었습니다. 예산이 있거나 용감하시다면 저에게 연락해 주세요.
네, 전체 멤버 대상이 필요할 때는 항상 Trust_level_0을 사용합니다.
모든 멤버에게 주제에 대해 언급하고(이메일로 알림을 보내고) 싶습니다. Trust_level_0 레벨 그룹으로 가능할까요? 이상적으로는 그룹 이름을 커스터마이즈할 수 있도록 새로운 그룹을 만드는 것을 선호합니다.
공지사항 카테고리를 만들고 모든 사용자에게 해당 카테고리를 관찰하도록 설정하는 건 어떨까요?
제가 제안한 대로 rails에서 모든 사용자를 추가할 수는 있지만, 이는 새로운 사용자를 추가하지는 않습니다.
자동화 플러그인과 배지를 통한 그룹 구성원을 살펴보세요. 해당 배지를 가진 사용자를 그룹에 추가하는 사용자 지정 배지를 만들 수 있는 것 같습니다: Discourse Automation
사용자가 100명을 초과하는 경우, 그룹 멘션 시 알림 대상 최대 사용자 수 설정을 변경해야 합니다.
아 네, 좋은 지적이에요! 감사합니다. 그 설정을 깜빡했네요. ![]()
그룹의 사용자 추가 폼에서 한 번에 추가할 수 있는 최대 사용자 수는 1,000명입니다. 코드를 살펴보면, 이 한도를 초과하여 추가를 시도할 경우 다음과 유사한 오류 메시지가 표시되어야 합니다:
“한 번에 최대 1,000명의 사용자를 추가할 수 있습니다.”
어떤 형태의 한도는 반드시 있어야 합니다. 그렇지 않으면 Discourse가 처리되지 않은 오류를 발생시킬 위험이 있습니다. 이 한도를 우회하기 위해, 제이가 제안한 자동화 플러그인(Automation Plugin) 방식을 추천합니다.
왜 캡슐화된 인터페이스인 group.add(user)를 사용하지 않나요? 이렇게 직접적으로 ActiveRecords를 조작하면 잠재적인 문제가 발생하지 않을까요?
@kam44의 사용 사례에 대해 이것이 최선의 (그리고 가장 단순한) 해결책이라고 확신합니다.
하지만 Rails 콘솔에서 그룹에 사용자를 추가하는 방법을 아는 것도 매우 유용합니다. 때때로 큰 그룹을 병합해야 할 때 이 기능이 큰 도움이 될 테니까요!
왜 안 쓰냐고요? 얼마 전에 찾아볼 때 왜 그걸 보지 못했는지 모르겠네요.
Active Record 관련 코드를 호출하는 것은 위험하지 않습니다. 필요한 규칙들을 강제하기 때문입니다.