复现项目:https ://github.com/Jasperav/sumdieselrust
问题出在方法money_donated
上。我在“捐赠”表中有一个“捐赠”列。我想总结数据库中的所有值并将结果作为 JSON 上的值返回。但是,我对 Diesel 中的所有类型都遇到了麻烦,我不明白如何进行简单的求和。
我得到的编译错误是:
^^^^^
diesel::deserialize::FromSql<diesel::sql_types::Nullable<diesel::sql_types::Numeric>, diesel::pg::Pg>
未实现该特征i32
对于这一行:
// The rounding is not important for JSON, so an i32 is fine to use
let amount: i32 = donation.select(sum(donated)).first(&c).unwrap();
在项目中,我试图实现这个特性FromSql
,然后我想,所有这些工作对于像这样简单的事情来说太多了,所以也许我错过了重点并且做了太多的工作。
我在这里阅读了文档:https ://docs.diesel.rs/diesel/dsl/fn.sum.html以及这个问题:https ://github.com/diesel-rs/diesel/issues/210 。我仍然无法弄清楚如何使它工作。