Estoy trabajando en un plugin que asignará una etiqueta predeterminada a los nuevos temas creados en una categoría.
El siguiente código “funciona” si ingreso nombres de etiquetas separados por “|”, por lo que “tag1|tag2” funciona. (¡Apenas puedo creerlo! Pero me desvío del tema.)
<h3>{{i18n 'topic_default_tag.title'}}</h3>
<section class='field default-tag'>
<div class="default-tag">
<label>
{{input type="list" value=category.custom_fields.default_tag }}
{{popup-input-tip validation=tagValidation}}
{{i18n 'topic_default_tag.default_tag'}}
</label>
</div>
</section>
Lo que ahora me gustaría es tener un selector de etiquetas adecuado en lugar de una cadena no validada. Parece que lo siguiente debería funcionar:
<h3>{{i18n 'topic_default_tag.title'}}</h3>
<section class='field default-tag'>
<div class="default-tag">
<label>
{{tag-chooser tags=category.custom_fields.default_tag tabindex="4" categoryId=category.id}}
{{popup-input-tip validation=tagValidation}}
{{i18n 'topic_default_tag.default_tag'}}
</label>
</div>
</section>
Pero no funciona. La base de mi problema es que tengo casi nula idea de cómo funciona la magia de esos Handlebars. Por ejemplo, supongo que la primera sección funciona porque mágicamente obtiene el nombre del campo de default-tag en <section class='field default-tag'>, pero eso fue suerte. ![]()
Cuando uso tag-chooser, las etiquetas se pasan a Rails como un array, que lo descarta antes de que pueda convertirlo en una cadena delimitada por | para insertarla en CategoryCustomField. Con {{input type=list...}} puedo ingresar yo mismo la cadena delimitada por | y funciona perfectamente. ¿Necesito algún tipo de magia de Ember para convertir el array en una cadena en el lado de Ember?
¿Quizás necesito hacer algo como What's the best approach to access category specific settings??
EDITO: Para agregar etiquetas antes de que se llame al webhook, usa after_create en lugar de DiscourseEvent.on(:post_created). Rails ahora tiene más sentido para mí, pero Ember, Javascript y CSS, no tanto.