Хорошо, я думаю, что я ближе очень близок сейчас.
Я попробовал this.post.save(), и, apparently, это «работает» — похоже, что PUT-запрос проходит (используя ajax под капотом), но был встречен какой-то ошибкой с очень малым количеством информации или без неё. Но это было до этого…
this.post.save() работает. Единственная проблема — та, что указана ниже:
Теперь моя функция выглядит так:
@action
async addCodeFences() {
let selectedText = this.selectedText;
let newText = "```" + "\n" + selectedText + "\n" + "```";
let post = this.post;
console.log(this.post.cooked); // Работает
let rawPost = post.raw; // Не существует!!
console.log(rawPost); // undefined!
rawPost.replace(selectedText, "\n" + newText + "\n"); // Ошибка, так как rawPost равен undefined!
await this.post.save({
raw: rawPost,
edit_reason: I18n.t(themePrefix("add_code_fence_edit_reason"))
});
}
По какой-то причине я не могу получить необработанное содержимое поста, только обработанное. Кроме выполнения AJAX-запроса, есть ли способ это сделать? Я не могу найти raw среди атрибутов поста… есть ли причина, по которой он не включён?
P.S. Я стараюсь не обращаться к Ask Discourse. Я был бы очень благодарен за любую помощь!
РЕДАКТИРОВАНИЕ: Я думаю, что каждый пост основан на этом API-запросе? И в ответе, похоже, нет raw среди ключей JSON ![]()