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

在Diesel中如何忽略结构体中的字段?

在Diesel中如何忽略结构体中的字段?

嗨,这个问题我熟!你遇到的报错是因为Diesel的Queryable和Selectable宏默认会要求结构体的每个字段都能在指定的数据库表schema里找到对应的列。你的name字段在crate::schema::tokens里不存在,所以才会触发这个错误。

解决方法很简单,只需要给要忽略的字段加上#[diesel(ignore)]属性就行,它会告诉Diesel在处理ORM相关操作(比如查询、映射结果)的时候,完全跳过这个字段,不把它和数据库表的列做关联。

修改后的代码应该是这样的:

#[derive(Debug, Queryable, Selectable)]
#[diesel(table_name = crate::schema::tokens)]
pub struct Token {
    pub public_key: String,
    #[diesel(ignore)]
    pub name: Option<String>,
}

这样修改之后,Diesel就不会再因为找不到name对应的数据库列而报错了,你的name字段可以正常作为结构体的普通字段使用,不会参与到数据库的读写操作里。

备注:内容来源于stack exchange,提问作者Eugene

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 10:17:57