Gracias @david. Curiosamente, eso es exactamente lo que hice para enlazar en la otra dirección (desde los perfiles de usuario de mi aplicación Rails a los perfiles de usuario de Discourse) a través de este plugin de Discourse (/user-by-id/123/summary), ya que mi aplicación Rails almacena el ID de usuario de Discourse en lugar del nombre de usuario (ya que los nombres de usuario pueden cambiar).
Esa solución funcionaría en la otra dirección, excepto por el hecho de que no todos los usuarios del foro tienen perfiles de usuario en mi aplicación Rails. Un usuario de Rails solo se crea una vez que el usuario de Discourse se ‘une’ a la organización, mientras que el foro de Discourse puede tener no miembros.
Así que supongo que mis dos opciones son:
A) Crear un plugin de JavaScript que envíe una solicitud AJAX a mi aplicación Rails para determinar si el usuario de Discourse también es un usuario en la aplicación Rails y, si es así, mostrar un enlace; o
B) En el momento en que se crea el usuario de la aplicación Rails y se vincula al usuario de Discourse, además de almacenar el ID de usuario de Discourse en la base de datos de la aplicación Rails, almacenar de alguna manera el ID de usuario de Rails en el perfil de usuario de Discourse (por ejemplo, como un campo de usuario personalizado).
Creo que (B) es la mejor solución (siempre que el campo de usuario personalizado no sea modificable excepto por los administradores), aunque no estoy familiarizado con los campos personalizados o si son accesibles a través de la API.
EDITAR: Ahora recuerdo de la última vez que investigué esto: el problema es que los campos de usuario personalizados son editables por el usuario, lo que los convierte en un mal lugar para almacenar una referencia generada por el sistema como esta ![]()