Me gustaría mostrar un pequeño distintivo para todos los grupos de un usuario en cada publicación de un tema (debajo del nombre de usuario). Tengo la funcionalidad básica funcionando, pero me he topado con la pared al encontrar los grupos del usuario que hizo la publicación. En los atributos del widget de metadatos de la publicación, puedo encontrar algunos detalles del usuario, pero los grupos no están incluidos. Creo que necesito agregar los grupos al serializador de publicaciones, pero no estoy seguro de cómo hacerlo.
Hola,
No soy un experto, pero en un plugin puedes añadir el campo groups al serializador de posts, algo así:
add_to_serializer(
:post,
:groups
) { object.user&.groups }
Sin embargo, ten en cuenta que, tal como está, cualquiera puede ver en qué grupo está una persona.
Dicho esto, creo que mientras uses un distintivo (flair), el nombre del grupo será visible para cualquiera, independientemente de los permisos.
También podrías insertar un nuevo campo available_flairs para devolver solo los campos necesarios de los distintivos del grupo:
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
Espero que esto ayude. ![]()
Este componente podría ser de interés durante la creación de publicaciones, ¿quizás para añadir “flairs” a las publicaciones durante la creación?
La segunda solución es exactamente lo que estoy buscando, pero no consigo que funcione. Por alguna razón, el array available_flairs no aparece en absoluto. ¿Estoy en lo cierto al suponer que el código debe ir a plugins.rb?
Para aparecer en el contexto post-meta-data, intenta usar la API. ¡Esto debería funcionar!
api.includePostAttributes("available_flairs");
Eso funcionó. ¡Gracias por la ayuda!
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
