gpt4 book ai didi

arrays - 在当前作用域中未找到针对struct `contains`的名为 `schema::users::columns::roles`的方法

转载 作者:行者123 更新时间:2023-12-03 11:43:55 27 4
gpt4 key购买 nike

我是使用rust 的新手,正在尝试创建示例webapi。我正在使用postgres,并有一个名为“角色”的列作为数组的类型。我想使用柴油:: expression_methods::PgArrayExpressionMethods中的包含方法,但出现错误,提示“在当前范围内未找到针对结构contains的名为schema::users::columns::roles的方法”
模式

table! {
users (id) {
id -> Uuid,
username -> Varchar,
email -> Varchar,
password -> Varchar,
first_name -> Nullable<Varchar>,
last_name -> Nullable<Varchar>,
active -> Bool,
roles -> Nullable<Array<Text>>,
created_at -> Timestamp,
updated_at -> Timestamp,
}
}
在处理程序方法中:
users.filter(roles.contains(vec!["admin"])).get_results::<User>(&conn)

最佳答案

就在我写这个问题时,我已经找到了问题。它不适用于可为空的数组列。我已经使用默认的空数组重新滚动了迁移,现在它可以正常工作了:)
新模式

table! {
users (id) {
id -> Uuid,
username -> Varchar,
email -> Varchar,
password -> Varchar,
first_name -> Nullable<Varchar>,
last_name -> Nullable<Varchar>,
active -> Bool,
roles -> Array<Text>,
created_at -> Timestamp,
updated_at -> Timestamp,
}
}
新的迁移/.../up.sql
.
.
roles text [] not null default array[]::text[],
.
.


关于arrays - 在当前作用域中未找到针对struct `contains`的名为 `schema::users::columns::roles`的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66118090/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com