Sto lavorando a un plugin che assegnerà un tag predefinito ai nuovi argomenti creati in una categoria.
Il codice sottostante “funziona” se inserisco i nomi dei tag separati da “|”, quindi “tag1|tag2” funziona. (Faticavo a crederci! Ma lasciamo perdere.)
<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>
Ora vorrei avere un selettore di tag appropriato invece di una stringa non validata. Sembra che il codice sottostante dovrebbe funzionare:
<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>
Ma non funziona. Il problema di fondo è che ho quasi zero idea di come funzioni la magia di quelle handlebars. Immagino che la prima sezione funzioni perché sta estraendo magicamente il nome del campo da default-tag nel <section class='field default-tag'>, ma è stata fortuna. ![]()
Quando uso tag-chooser, i tag vengono passati a Rails come un array, che lui scarta prima che io possa convertirli in una stringa delimitata da | da inserire in CategoryCustomField. Con {{input type=list...}} posso inserire manualmente la stringa delimitata da | e funziona perfettamente. Ho bisogno di qualche tipo di magia Ember per convertire l’array in una stringa lato Ember?
Forse devo fare qualcosa come What's the best approach to access category specific settings??
EDIT: Per aggiungere i tag prima che venga chiamato il webhook, usa after_create invece di DiscourseEvent.on(:post_created). Rails ora ha quasi senso per me, ma Ember, Javascript e CSS, meno.