Ayuda para construir un plugin que requiere sobrescribir métodos del controlador de ruby

Hola,\n\nEstoy intentando crear un plugin que muestre una casilla de verificación al crear un tema en la interfaz de usuario, y que básicamente guarde un nuevo atributo en la tabla de temas. Básicamente, necesito que el atributo se guarde tanto si se hizo clic en la casilla de verificación como si no, y luego mostrar el nuevo atributo al visitar una página de Temas.\nComencé por el backend, añadiendo una migración que crea un nuevo atributo booleano para Temas, por defecto a falso, y luego estuve trabajando en el controlador. Pero no he podido encontrar una forma de añadir el nuevo atributo en la función posts del TopicsController.\nNo pude encontrar nada parecido en los tutoriales.\n¡Gracias de antemano!\n\n\n\nafter_initialize do\n\n module ::DiscourseXPlugin\n class ::TopicsController\n\n def posts\n Rails.logger.info '┌────────────┐'\n Rails.logger.info '│ Aquí vamos │'\n Rails.logger.info '└────────────┘' \n end\n end\n end\nend\n

1 me gusta

Una alternativa a esto sería crear un nuevo método en el controlador, como “posts_with_new_attribute” que se active a través de un nuevo endpoint si se hace clic en la casilla de verificación, pero no estoy seguro de si eso sería más complicado.

1 me gusta

Necesitarás hacer eso con un outlet de plugin en el front end de Ember.

Quieres usar un TopicCustomField, no cambiar ninguna tabla.

Querrás agregar el campo personalizado al serializador de temas.

Puedes ver otros plugins que hacen esas cosas para ver algunos ejemplos.

1 me gusta

¡Eso funcionó! ¡Gracias!