#[derive(Insertable)] 没有为 `std::string::String` 实现
#[derive(Insertable)] is not implemented for `std::string::String`
我收到这个错误:
#[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>
?如果这是问题,我该如何解决?
一般来说,为了能够 #[derive(X)]
struct
,它的所有成员也必须实现 X
。 Insertable
可能不是这种情况,因为它不是标准特征,但您可能想要验证这一点;在您的情况下,Insertable
未针对 optional_data
中的 String
实施;它是为 Option<T>
实现的,因此包含它的 Option
不是问题。
您可能希望手动实施 Insertable
;不过,我还没有使用 diesel
- 可能有更简单的方法来做到这一点。
我收到这个错误:
#[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>
?如果这是问题,我该如何解决?
一般来说,为了能够 #[derive(X)]
struct
,它的所有成员也必须实现 X
。 Insertable
可能不是这种情况,因为它不是标准特征,但您可能想要验证这一点;在您的情况下,Insertable
未针对 optional_data
中的 String
实施;它是为 Option<T>
实现的,因此包含它的 Option
不是问题。
您可能希望手动实施 Insertable
;不过,我还没有使用 diesel
- 可能有更简单的方法来做到这一点。