Пользовательские маршруты возвращают данные в формате JSON, а мне нужно отрисовать шаблон Ember. Есть ли здесь посты, объясняющие эту тему? Большое спасибо.
Я добавил эту тему в закладки некоторое время назад, чтобы прочитать позже: Creating Routes in Discourse and Showing Data. Не уверен, что она актуальна, но, возможно, она всё ещё поможет.
Да, я тоже прочитал этот пост и выполнил описанные в нём шаги, но ничего не получилось — появляется ошибка «Страница не найдена». После этого я просто растерялся.
import Route from "@ember/routing/route";
import { ajax } from "discourse/lib/ajax";
export default class HelloRoute extends Route {
model() {
return ajax('/q/hello'); // Запрос к бэкенду для получения данных
}
}
Создайте файл шаблона фронтенда plugins/quectel/assets/javascripts/discourse/templates/q/hello.gjs для отображения данных:
import QHello from '../../components/q-hello'
<template>
<h1>q-hello</h1>
{{!-- Отображение компонента --}}
<QHello />
{{!-- Отображение данных модели --}}
<div>{{@model.hello}}</div>
</template>
# frozen_string_literal: true
module ::Quectel
class ExamplesController < ::ApplicationController
requires_plugin PLUGIN_NAME
def hello
render json: { hello: "hello 2333" }
end
end
end
Определите маршруты бэкенда в файле plugins/quectel/config/routes.rb:
# frozen_string_literal: true
Quectel::Engine.routes.draw do
get "/hello" => "examples#hello"
end
Discourse::Application.routes.draw { mount ::Quectel::Engine, at: "q" }