Google News
logo
Ember.js - Interview Questions
What are the Relationships in Ember.js?
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;
}
Advertisement