トピック内のポスターのすべてのグループを見つける

トピック内のすべての投稿で、ユーザーのすべてのグループに小さな装飾を表示したいです(ユーザー名の下)。基本的な機能は動作していますが、投稿を行ったユーザーのグループを見つけるところで壁にぶつかりました。post-meta-dataウィジェットのattrsでユーザーの詳細の一部を見つけることができますが、グループは含まれていません。postシリアライザーにグループを追加する必要があると思いますが、その方法がわかりません。

「いいね!」 2

こんにちは。

専門家ではありませんが、プラグインで投稿シリアライザーに groups フィールドを追加できます。たとえば次のようになります。

add_to_serializer(
    :post,
    :groups
) { object.user&.groups }

ただし、このままでは誰でも人がどのグループに属しているかを見ることができることに注意してください
そうは言っても、フレアを使用している限り、権限に関係なく、グループの名前は誰にでも表示されると信じています。

必要最低限のフィールドのみを返す新しい 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

お役に立てれば幸いです。:+1:

「いいね!」 3

このコンポーネントは、投稿作成中に、投稿にフレアを追加するために役立つかもしれません。

探しているのは2番目のソリューションですが、動作させることができません。どういうわけか、available_flairs 配列がまったく表示されません。コードは plugins.rb に入れるべきだと考えて正しいですか?

post-meta-data コンテキストに表示するには、API を試してください。これで機能するはずです。

api.includePostAttributes("available_flairs");

それでうまくいきました。助けてくれてありがとう!

「いいね!」 1

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