Rust: не удалось отобразить «маршрут»: контекст не является объектом JSON. Переданное значение должно быть объектом "ключ-значение": например, контекст, структура, хэш-карта.
Итак, я пытаюсь создать веб-приложение, используя ржавчину, ракету и дизельное топливо. Код компилируется отлично, с предупреждением о некоторых неиспользуемых производных. Но при рендеринге шаблона я получаю следующую ошибку
GET /api/users:
=> Matched: GET /api/users (user_list_rt)
=> Error: Error rendering Tera template 'user/index'.
=> Error: Failed to render 'user/index': context isn't a JSON object. The value passed needs to be a key-value object: context, struct, hashmap for example.
=> Error: Template 'user/index' failed to render.
=> Outcome: Failure
=> Warning: Responding with 500 Internal Server Error catcher.
=> Response succeeded.
Мой код выдает простой запрос нагрузки в дизеле
#[get("/users")]
pub fn user_list_rt(connection: Conn) -> Template {
use crate::schema::user::dsl::*;
let user_coll = user.filter(name.is_not_null())
.load::<User>(&*connection)
.expect("Error loading users");
Template::render("user/index", &user_coll)
}
Пользовательская структура
#[derive(Serialize, Queryable, Deserialize, Debug, Clone)]
pub struct User {
pub id: i64,
pub uuid: String,
pub name: String,
pub username: String,
pub email: String,
pub password: String,
pub salt: String,
pub phone: i64,
pub wallet: i64,
pub game_id: String,
pub verification: i8,
}
Я понимаю, что мой user_coll - это вектор пользовательских структур. Но я не могу понять, почему производная Serialize отсутствует, чтобы сделать это автоматически. Что мне не хватает?