【发布时间】:2014-05-10 00:29:37
【问题描述】:
我的 Ember.js 应用程序中有一个如下所示的模型:
MyApp.Game = DS.Model.extend({
season_type: DS.attr('string'),
gamedate: DS.attr('date'),
home_team_name: DS.attr('string'),
visiting_team_name: DS.attr('string'),
gametime: DS.attr('string'),
home_team: DS.belongsTo('team'),
visiting_team: DS.belongsTo('team'),
home_team_pitcher: DS.belongsTo('player'),
visiting_team_pitcher: DS.belongsTo('player'),
home_players: DS.hasMany('player'),
visitor_players: DS.hasMany('player')
});
这在控制器“A”中工作得很好。在另一个控制器中,我们称它为控制器“B”,理想情况下,我应该有另外两个可用的属性,如下所示:
MyApp.Game = DS.Model.extend({
season_type: DS.attr('string'),
gamedate: DS.attr('date'),
home_team_name: DS.attr('string'),
visiting_team_name: DS.attr('string'),
gametime: DS.attr('string'),
home_team: DS.belongsTo('team'),
visiting_team: DS.belongsTo('team'),
home_team_pitcher: DS.belongsTo('player'),
visiting_team_pitcher: DS.belongsTo('player'),
home_players: DS.hasMany('player'),
visitor_players: DS.hasMany('player'),
home_all_players: DS.hasMany('player'),
visitor_all_players: DS.hasMany('player')
});
在这种情况下,我添加了home_all_players 和visitor_all_players。在这两个属性中,有大量数据需要跨线传输,我想避免将其用于面向客户的控制器A。另一方面,控制器B 是一个管理界面,管理员需要在其中访问home_all_players 和visitor_all_players,以便他们可以更新MLB 球队的阵容。
处理这个问题的最干净的方法是什么?我猜在服务器端,我使用 Ruby on Rails,我只会让序列化程序包括 home_all_players 和 visitor_all_players,具体取决于调用的路由。但是 Ember.js 端的建模保持不变,所以我不确定解决这个问题的最佳方法是什么。
【问题讨论】:
标签: javascript ruby-on-rails ember.js