我想設置一個多態關聯。不幸的是,Ember文檔沒有太好的介紹。如何定義多態關聯?
我的API(Rails)的定義如下:
class User < ActiveRecord::Base
belongs_to :profile, polymorphic: true#, dependent: :destroy
end
class MemberProfile < ActiveRecord::Base
has_one :user, as: :profile, dependent: :destroy
end
class GuestProfile < ActiveRecord::Base
has_one :user, as: :profile, dependent: :destroy
end
這意味着,在Rails的控制檯,我可以做User.last.profile
,這將返回一個MemberProfile
或GuestProfile
對象。
我應該如何在客戶端(Ember)定義這個?
// app/models/user.js
import DS from 'ember-data';
export default DS.Model.extend({
profile: DS.belongsTo('profile', { polymorphic: true, async: true })
});
// app/models/member-profile.js
import DS from 'ember-data';
export default DS.Model.extend({
profile: DS.belongsTo('profile', { polymorphic: true, async: true })
});
// app/models/guest-profile.js
import DS from 'ember-data';
export default DS.Model.extend({
profile: DS.belongsTo('profile', { polymorphic: true, async: true })
});