2016-10-08 3 views
0

私はrethinkDBと思考を使い始めました。私は、既存のモデルとn-nの関係を持つモデルの新しいインスタンスを作成する方法について質問したかったのです。 たとえば、ピザとトッピングのモデルがあるとします。私はすでにPizzaインスタンスを作成しました。トッピングインスタンスを作成し、既存のピザにリンクするにはどうすればよいですか?thinkyを使って新しいn-nモデルを作成して既存のモデルにリンクするにはどうすればいいですか?

var Pizza = thinky.createModel("Pizza", { 
    name: type.string(), 
    size: type.string() 

}); 
var Topping = thinky.createModel("Topping", { 
    name: type.string(), 

}); 

Pizza.hasAndBelongsToMany(Topping, "toppings", "id", "id"); 
Topping.hasAndBelongsToMany(Pizza, "pizzas", "id", "id"); 

var pizza = new Pizza({name:"My pizza", size:"Large"}); 
var topping = new Topping({name:"Olive"}); 

トッピングを保存して既に作成されたピザに関連するようにするにはどうすればよいですか? docs

は、1人のために - 彼らは何かやるのnの関係:topping.pizzasは、オブジェクトの配列だけではなく、単一のオブジェクトであるため、

この場合
topping.pizzas = pizza 
topping.saveAll({pizza: true}).then(...); 

を、それが動作しません。

答えて

0

答えは、私が見つけた非常に単純です:

var pizza = new Pizza({name:"My pizza", size:"Large"}); 
var topping = new Topping({name:"Olive"}); 

Topping.filter({name:Olive}).run().then(function (topping) { 
    if (topping.length > 0){ 
     if (pizza.toppings == undefined){ 
      pizza.toppings = [] 
     } 
    pizza.toppings.push(topping[0]); 
    pizza.saveAll().then(...) 
    } 
} 

そこにそれを行うには良い方法がありますが、これは動作しますかなり確信して。

関連する問題