Derive Macro diesel::prelude::Associations
source · #[derive(Associations)]
{
// Attributes available to this derive:
#[diesel]
#[belongs_to]
#[column_name]
#[table_name]
}
Expand description
Implement required traits for the associations API
This derive implements support for Diesel’s associations api. Check the
module level documentation of the diesel::associations
module for details.
This derive generates the following impls:
impl BelongsTo<Parent> for YourType
impl BelongsTo<&'a Parent> for YourType
Attributes
Required container attributes
#[diesel(belongs_to(User))]
, to specify a child-to-parent relationship between the current type and the specified parent type (User
). If this attribute is given multiple times, multiple relationships are generated.#[diesel(belongs_to(User, foreign_key = mykey))]
variant allows us to specify the name of the foreign key. If the foreign key is not specified explicitly, the remote lower case type name with appended_id
is used as a foreign key name. (user_id
in this example case)
Optional container attributes
#[diesel(table_name = path::to::table)]
specifies a path to the table this type belongs to. The path is relative to the current module. If this attribute is not used, the type name converted tosnake_case
with an addeds
is used as table name.
Optional field attributes
#[diesel(column_name = some_column_name)]
, overrides the column the current field maps tosome_column_name
. By default, the field name is used as a column name.