Cómo acceder a los campos personalizados de Categoría en Plugins

Para comenzar, esto es para un plugin que necesita conocer los custom_fields de la categoría para crear un botón en el plugin-outlet before-create-topic. También necesito usar esto en el conector after-topic-footer-main-buttons.

Seguramente me estoy perdiendo algo increíblemente simple…

Puedo usar lo siguiente en el inicializador para obtener la clase de la categoría… más o menos:

const controller = api.container.lookup("controller:navigation/category");

Cuando imprimo eso, puedo ver varias propiedades. En la consola de desarrollo, puedo ver category: (...). Cuando hago clic en (..), puedo ver custom_fields y el campo que estoy buscando. ¿Cómo puedo acceder a esto desde la API del plugin?

He probado varias formas de “obtener” la propiedad, pero todas devuelven undefined.

Podrías dar un paso atrás y explicar qué estás intentando hacer. En su mayoría, los datos que necesitas ya están disponibles. Si no es así, podrías usar Ajax para obtenerlos en un tema o agregarlos al serializador en un plugin.

Estoy intentando obtener un campo personalizado de mi categoría. Perdón, no estaba claro antes. He actualizado la publicación original con más información.

1 me gusta

Esa es más información de la que entendía antes… Algo así en plugin.rb:

  add_to_serializer(:category, :your_plugin) do
    some_stuff
  end

Pero creo que lo que quieres hacer es buscar otros plugins que probablemente añadan cosas al serializador. Creo que Topic Ratings Plugin o Topic List Previews (legacy) son buenos ejemplos para revisar, y espero que sea “obvio” (pero solo después de pasar horas haciendo un montón de otras cosas “obvias”, si eres como yo).

La variable ya se ha añadido al serializador. Estoy intentando acceder a ellas desde JS. Pensé que las obtendría de la variable controller que mencioné en el post original, pero no entiendo cómo acceder a ella.

1 me gusta