我有一个带有 Province.rb 模型的 Rails 应用程序,该模型与 City.rb 模型具有 has_many 关系。在省控制器的显示动作中,我这样做
@province= @province.cities
render json: @province, root: false
能够在我渲染时从省中获得城市。使用 Rails 很容易做到这一点,但我正在使用 Backbone 中的 JSON 数据。当我在 Backbone 中渲染省份对象时,它没有可用的城市
_changing: false
_events: Object
_pending: false
_previousAttributes: Object
attributes: Object
id: 14
name: "Ontario"
__proto__: Object
changed: Object
cid: "c501"
collection: child
id: 14
__proto__: Surrogate
问题 1. 有没有办法在省对象中使城市可用?这样我就可以用javascript调用provincial.cities了吗?
无法通过省份对象访问城市,我尝试showProvince
在路由器中的方法中根据省份ID查询城市,如下所示
self.provinces = app.collections.provinces.get(id);
self.cities = app.collections.cities.where({province_id: id}).fetch() //doesn't work
但我不能在指定后调用 fetch where
。此外,如果我停止获取,并以这种方式尝试,我无法在where
方法上使用成功回调,因此self.cities
在 console.log 中未定义,因为代码在查询完成之前已经移动。
self.cities = app.collections.cities.where({province_id: id}, {
success: function(){
no success callback, how to process data
}
});
console.log(self.cities)//undefined
问题2:如何使用父id查询has_many关联?
假设我能够检索到与省对应的城市记录,我不确定如何将两者一起插入到几个
this.showView( '#main', new app.Views.ProvinceView({model:self.province}) );
如果我能够检索它们,我将如何包括该省的城市?我应该尝试将它们与省合并,还是可以以另一种方式将它们包括在内?