トピック内のすべての投稿で、ユーザーのすべてのグループに小さな装飾を表示したいです(ユーザー名の下)。基本的な機能は動作していますが、投稿を行ったユーザーのグループを見つけるところで壁にぶつかりました。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
お役に立てれば幸いです。![]()
「いいね!」 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.
