Skip to content

Commit

Permalink
system/relationships: Adjust code samples to ember-cli
Browse files Browse the repository at this point in the history
  • Loading branch information
Turbo87 committed Jun 5, 2015
1 parent 325c402 commit 9345688
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 48 deletions.
30 changes: 22 additions & 8 deletions packages/ember-data/lib/system/relationships/belongs-to.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,18 @@ import normalizeModelName from "ember-data/system/normalize-model-name";
To declare a one-to-one relationship between two models, use
`DS.belongsTo`:
```javascript
App.User = DS.Model.extend({
```app/models/user.js
import DS from 'ember-data';
export default DS.Model.extend({
profile: DS.belongsTo('profile')
});
```
App.Profile = DS.Model.extend({
```app/models/profile.js
import DS from 'ember-data';
export default DS.Model.extend({
user: DS.belongsTo('user')
});
```
Expand All @@ -33,21 +39,29 @@ import normalizeModelName from "ember-data/system/normalize-model-name";
To declare a one-to-many relationship between two models, use
`DS.belongsTo` in combination with `DS.hasMany`, like this:
```javascript
App.Post = DS.Model.extend({
```app/models/post.js
import DS from 'ember-data';
export default DS.Model.extend({
comments: DS.hasMany('comment')
});
```
```app/models/comment.js
import DS from 'ember-data';
App.Comment = DS.Model.extend({
export default DS.Model.extend({
post: DS.belongsTo('post')
});
```
You can avoid passing a string as the first parameter. In that case Ember Data
will infer the type from the key name.
```javascript
App.Comment = DS.Model.extend({
```app/models/comment.js
import DS from 'ember-data';
export default DS.Model.extend({
post: DS.belongsTo()
});
```
Expand Down
53 changes: 31 additions & 22 deletions packages/ember-data/lib/system/relationships/ext.js
Original file line number Diff line number Diff line change
Expand Up @@ -164,8 +164,10 @@ Model.reopenClass({
For example, if you define a model like this:
```javascript
App.Post = DS.Model.extend({
```app/models/post.js
import DS from 'ember-data';
export default DS.Model.extend({
comments: DS.hasMany('comment')
});
```
Expand All @@ -192,14 +194,20 @@ Model.reopenClass({
For example, if you define models like this:
```javascript
App.Post = DS.Model.extend({
comments: DS.hasMany('message')
});
```app/models/post.js
import DS from 'ember-data';
App.Message = DS.Model.extend({
owner: DS.belongsTo('post')
});
export default DS.Model.extend({
comments: DS.hasMany('message')
});
```
```app/models/message.js
import DS from 'ember-data';
export default DS.Model.extend({
owner: DS.belongsTo('post')
});
```
App.Post.inverseFor('comments') -> {type: App.Message, name:'owner', kind:'belongsTo'}
Expand Down Expand Up @@ -320,7 +328,7 @@ Model.reopenClass({
For example, given the following model definition:
```javascript
App.Blog = DS.Model.extend({
var Blog = DS.Model.extend({
users: DS.hasMany('user'),
owner: DS.belongsTo('user'),
posts: DS.hasMany('post')
Expand All @@ -331,7 +339,7 @@ Model.reopenClass({
relationships, like this:
```javascript
var relationships = Ember.get(App.Blog, 'relationships');
var relationships = Ember.get(Blog, 'relationships');
relationships.get(App.User);
//=> [ { name: 'users', kind: 'hasMany' },
// { name: 'owner', kind: 'belongsTo' } ]
Expand All @@ -353,7 +361,7 @@ Model.reopenClass({
definition:
```javascript
App.Blog = DS.Model.extend({
var Blog = DS.Model.extend({
users: DS.hasMany('user'),
owner: DS.belongsTo('user'),
Expand All @@ -364,7 +372,7 @@ Model.reopenClass({
This property would contain the following:
```javascript
var relationshipNames = Ember.get(App.Blog, 'relationshipNames');
var relationshipNames = Ember.get(Blog, 'relationshipNames');
relationshipNames.hasMany;
//=> ['users', 'posts']
relationshipNames.belongsTo;
Expand Down Expand Up @@ -399,7 +407,7 @@ Model.reopenClass({
For example, given a model with this definition:
```javascript
App.Blog = DS.Model.extend({
var Blog = DS.Model.extend({
users: DS.hasMany('user'),
owner: DS.belongsTo('user'),
Expand All @@ -410,7 +418,7 @@ Model.reopenClass({
This property would contain the following:
```javascript
var relatedTypes = Ember.get(App.Blog, 'relatedTypes');
var relatedTypes = Ember.get(Blog, 'relatedTypes');
//=> [ App.User, App.Post ]
```
Expand All @@ -429,7 +437,7 @@ Model.reopenClass({
definition:
```javascript
App.Blog = DS.Model.extend({
var Blog = DS.Model.extend({
users: DS.hasMany('user'),
owner: DS.belongsTo('user'),
Expand All @@ -440,7 +448,7 @@ Model.reopenClass({
This property would contain the following:
```javascript
var relationshipsByName = Ember.get(App.Blog, 'relationshipsByName');
var relationshipsByName = Ember.get(Blog, 'relationshipsByName');
relationshipsByName.get('users');
//=> { key: 'users', kind: 'hasMany', type: App.User }
relationshipsByName.get('owner');
Expand All @@ -462,8 +470,7 @@ Model.reopenClass({
For example:
```javascript
App.Blog = DS.Model.extend({
var Blog = DS.Model.extend({
users: DS.hasMany('user'),
owner: DS.belongsTo('user'),
Expand All @@ -472,7 +479,7 @@ Model.reopenClass({
title: DS.attr('string')
});
var fields = Ember.get(App.Blog, 'fields');
var fields = Ember.get(Blog, 'fields');
fields.forEach(function(kind, field) {
console.log(field, kind);
});
Expand Down Expand Up @@ -588,8 +595,10 @@ Model.reopen({
Example
```javascript
App.ApplicationSerializer = DS.JSONSerializer.extend({
```app/serializers/application.js
import DS from 'ember-data';
export default DS.JSONSerializer.extend({
serialize: function(record, options) {
var json = {};
Expand Down
53 changes: 35 additions & 18 deletions packages/ember-data/lib/system/relationships/has-many.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,18 @@ import normalizeModelName from "ember-data/system/normalize-model-name";
To declare a one-to-many relationship between two models, use
`DS.belongsTo` in combination with `DS.hasMany`, like this:
```javascript
App.Post = DS.Model.extend({
```app/models/post.js
import DS from 'ember-data';
export default DS.Model.extend({
comments: DS.hasMany('comment')
});
```
```app/models/comment.js
import DS from 'ember-data';
App.Comment = DS.Model.extend({
export default DS.Model.extend({
post: DS.belongsTo('post')
});
```
Expand All @@ -34,21 +40,29 @@ import normalizeModelName from "ember-data/system/normalize-model-name";
To declare a many-to-many relationship between two models, use
`DS.hasMany`:
```javascript
App.Post = DS.Model.extend({
```app/models/post.js
import DS from 'ember-data';
export default DS.Model.extend({
tags: DS.hasMany('tag')
});
```
App.Tag = DS.Model.extend({
```app/models/tag.js
import DS from 'ember-data';
export default DS.Model.extend({
posts: DS.hasMany('post')
});
```
You can avoid passing a string as the first parameter. In that case Ember Data
will infer the type from the singularized key name.
```javascript
App.Post = DS.Model.extend({
```app/models/post.js
import DS from 'ember-data';
export default DS.Model.extend({
tags: DS.hasMany()
});
```
Expand All @@ -67,19 +81,22 @@ import normalizeModelName from "ember-data/system/normalize-model-name";
same type. You can specify which property on the related model is
the inverse using `DS.hasMany`'s `inverse` option:
```javascript
var belongsTo = DS.belongsTo,
hasMany = DS.hasMany;
```app/models/comment.js
import DS from 'ember-data';
App.Comment = DS.Model.extend({
onePost: belongsTo('post'),
twoPost: belongsTo('post'),
redPost: belongsTo('post'),
bluePost: belongsTo('post')
export default DS.Model.extend({
onePost: DS.belongsTo('post'),
twoPost: DS.belongsTo('post'),
redPost: DS.belongsTo('post'),
bluePost: DS.belongsTo('post')
});
```
```app/models/post.js
import DS from 'ember-data';
App.Post = DS.Model.extend({
comments: hasMany('comment', {
export default DS.Model.extend({
comments: DS.hasMany('comment', {
inverse: 'redPost'
})
});
Expand Down

0 comments on commit 9345688

Please sign in to comment.