토론의 모든 게시물(사용자 이름 아래)에서 해당 사용자의 모든 그룹에 대해 작은 플레어(flair)를 표시하고 싶습니다. 기본 기능은 작동하지만, 게시물을 작성한 사용자의 그룹을 찾는 부분에서 막혔습니다. post-meta-data 위젯의 attrs에는 사용자의 일부 세부 정보가 있지만, 그룹은 포함되어 있지 않습니다. 게시물 직렬화기(post serializer)에 그룹을 추가해야 할 것 같은데, 어떻게 해야 하는지 확실하지 않습니다.
안녕하세요,
전문가는 아니지만 – 플러그인에서 게시글 직렬화기(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를 사용하세요. 이렇게 하면 작동합니다!
api.includePostAttributes("available_flairs");
이렇게 하니 잘 작동했어요. 도움 주셔서 감사합니다!
