City.rb モデルと has_many 関係を持つ Province.rb モデルを使用した Rails アプリがあります。Province コントローラーの show アクションでは、これを行います。
@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でprovince.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 関連付けを照会する方法は?
州に対応する都市レコードを取得できたと仮定すると、2 つを一緒にいくつかに挿入する方法がわかりません。
this.showView( '#main', new app.Views.ProvinceView({model:self.province}) );
それらを取得できた場合、その州の都市をどのように含めますか? それらをプロヴィンスに統合する必要がありますか、それとも別の方法で含めることができますか?