4

我收到此错误:

#[derive(Insertable, Queryable, Identifiable, Debug, PartialEq)]
         ^^^^^^^^^^ the trait `diesel::Expression` is not implemented for `std::string::String`

当我尝试编译时struct

#[derive(Insertable, Queryable, Identifiable, Debug, PartialEq)]
#[table_name = "example_table"]
pub struct SigninLog {
    pub id: i32,
    pub user_group: UserRoleEnum,
    pub created_at: Option<SystemTime>,
    pub optional_data: Option<String>
}

是因为它包含自定义enum还是Option<String>? 如果这是问题,我该如何解决?

4

1 回答 1

-1

一般来说,为了能够#[derive(X)]for a struct,它的所有成员也必须实现X。可能不是这种情况Insertable,因为它不是标准特征,但您可能想要验证这一点;在您的情况下Insertable,未针对Stringinside实施optional_data;它是为 实现的Option<T>,所以Option封闭它不是问题。

您可能想要Insertable手动实现;不过,我没有使用过diesel- 可能有更简单的方法可以做到这一点。

于 2018-05-14T07:09:46.167 回答