簡體   English   中英

錯誤:在此 scope 中找不到屬性“table_name”

[英]error: cannot find attribute `table_name` in this scope

我想使用 rust 柴油進行頁面查詢,我正在使用此代碼在 rust 中進行單元測試:

#[cfg(test)]
mod test {

    use std::env;
    use diesel::{Connection, ExpressionMethods, PgConnection, QueryDsl, RunQueryDsl};
    use rust_wheel::common::query::pagination::PaginateForQuerySource;
    use crate::model::diesel::rhythm::rhythm_schema::favorites::dsl::favorites;
    use crate::model::diesel::rhythm::rhythm_schema::favorites::like_status;
    use crate::models::Favorites;

    #[test]
    fn page_test(){
        use crate::model::diesel::rhythm::rhythm_schema::favorites::dsl::*;
        use rust_wheel::common::query::pagination::{PaginateForQueryFragment, PaginateForQuerySource};
        let conn = establish_music_connection();
        let query = favorites
            .filter(like_status.eq(1))
            .paginate(1)
            .per_page(10)
            .load::<Favorites>(&conn)
            .expect("query fav failed");

        println!("{:?}", 1);
    }

    pub fn establish_music_connection() -> PgConnection {
        let database_url = std::env::var("MUSIC_DATABASE_URL").expect("MUSIC_DATABASE_URL must be set");
        PgConnection::establish(&database_url).expect(&format!("Error connecting to {}", database_url))
    }
}

顯示如下錯誤:

error: cannot find attribute `table_name` in this scope
  --> src/models.rs:15:3
   |
15 | #[table_name = "favorites"]
   |   ^^^^^^^^^^

這是我的models.rs定義,這兩個模型存儲在不同的數據庫中:

use rocket::serde::Serialize;
use serde::Deserialize;
use crate::model::diesel::dolphin::dolphin_schema::dashboard;
use crate::model::diesel::rhythm::rhythm_schema::favorites;

#[derive(Insertable, Serialize, Queryable, Deserialize,Default)]
#[table_name = "dashboard"]
pub struct Dashboard {
    pub id: i32,
    pub app_count: i32,
    pub user_count: i32
}

#[derive(Serialize, Queryable, Deserialize,Default)]
#[table_name = "favorites"]
pub struct Favorites {
    pub id: i64,
    pub song_id: String,
    pub created_time: i64
}

為什么會這樣? 我應該怎么做才能解決它?

只有Insertable派生宏處理#[table_name =...]屬性。 因此,如果您不使用它,則不應包含它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM