You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust导入模块时报错could not find `schema` in `super`如何解决

问题原因

  • 误用#[path]属性声明模块:Rust中mod xxx;是在当前模块下新增一个子模块,你在playlist_response.rs中通过#[path = "../../models.rs"] mod models;的写法,相当于把models.rs绑定为了response模块的子模块,此时models.rs中的super指向的是response模块的父级(即model目录对应的模块),自然找不到根目录下的schema.rs。
  • 根模块未注册:你的main.rs中没有声明mod schema;和mod models;,这两个文件没有被注册为crate的根模块,即使路径正确也无法被全局引用。

修复步骤

  1. 先在main.rs中注册根模块,添加如下两行:
mod schema;
mod models;
  1. 删除playlist_response.rs中手动声明mod的代码,替换为基于crate根路径的导入:
// 删除下面两行
// #[path = "../../models.rs"]
// mod models;

// 替换为根路径导入
use crate::models::QueryPlaylist;
  1. (可选稳健优化)将models.rs中的相对路径导入改为绝对根路径导入,避免后续其他地方导入时再出现路径问题:
// 把super::schema改为crate::schema
use crate::schema::posts;
use crate::schema::playing_record;
use crate::schema::favorites;
use crate::schema::songs;
use crate::schema::playlist;
use crate::schema::album;

修改完成后重新执行cargo build即可正常编译。

内容的提问来源于stack exchange,提问作者Dolphin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:06:01