Ember Data includes several built-in relationship types to help you define how your models
relate to each other.
One-to-One : To declare a one-to-one relationship between two models
, use belongsTo
:
app/models/user.js
:
import Model, { belongsTo } from '@ember-data/model';
export default class UserModel extends Model {
@belongsTo('profile') profile;
}
app/models/profile.js
:
import Model, { belongsTo } from '@ember-data/model';
export default class ProfileModel extends Model {
@belongsTo('user') user;
}
One-to-Many : To declare a one-to-many relationship between two models, use belongsTo
in combination with hasMany
, like this:
app/models/blog-post.js
:
import Model, { hasMany } from '@ember-data/model';
export default class BlogPostModel extends Model {
@hasMany('comment') comments;
}
app/models/comment.js
:
import Model, { belongsTo } from '@ember-data/model';
export default class CommentModel extends Model {
@belongsTo('blog-post') blogPost;
}
Many-to-Many : To declare a many-to-many relationship between two models, use hasMany
:
app/models/blog-post.js
:
import Model, { hasMany } from '@ember-data/model';
export default class BlogPostModel extends Model {
@hasMany('tag') tags;
}
app/models/tag.js
:
import Model, { hasMany } from '@ember-data/model';
export default class TagModel extends Model {
@hasMany('blog-post') blogPosts;
}