2016-02-05 2 views
13

Ich habe zwei Modelle:Aktualisierung bereits bestehende Ereignis mit Beziehung, wenn eine Buchung in Ember gespeichert

Event.js:

export default Model.extend({ 
    checked  : attr({ defaultValue: false }), 
    isActive  : attr(), 
    createdAt  : attr(), 
    updatedAt  : attr(), 
    start   : attr(), 
    end   : attr(), 
    menPrice  : attr(), 
    womenPrice : attr(), 
    information : attr(), 
    meetingPoint : attr(), 
    title   : attr(), 
    hiw   : attr(), 
    tip   : attr(), 
    bookings  : hasMany('booking', { async: true}) 
}); 

und Booking.js:

export default Model.extend({ 
    checked  : attr({ defaultValue: false }), 
    isActive  : attr(), 
    createdAt  : attr(), 
    updatedAt  : attr(), 
    participants : attr(), 
    email   : attr(), 
    locale  : attr(), 
    name   : attr(), 
    observation : attr(), 
    phoneNumber : attr(), 
    event   : belongsTo('event') 
}); 

Und ich Ich möchte gerne die Beziehung mit den Buchungen in meinen Veranstaltungen erstellen, aber ich kann einfach nicht herausfinden, wie!

Wie es funktioniert: Wenn ich das Ereignis in meinem Admin-Dashboard erstellen, gibt es keine Buchungen zu beziehen, dies geschieht nur auf der Website, wenn der Benutzer eine Reservierung vornimmt.

ich diesen Code bin mit der Buchung (Reservierung) und beziehen sich die Eigentümer Ereignis zu speichern:

let booking = this.get('store').createRecord('booking', { 
    event: this.get('event') 
}); 

booking.save(); 

Und es funktioniert. Das ist, wie die Buchung wie folgt aussieht:

Diese Reservierung JSON ist:

{ 
    "_id": { 
     "$oid": "56beb58da080cf2c2d46065b" 
    }, 
    "relationships": { 
     "event": { 
      "data": { 
       "id": "56baa0cdd79cd63c7a0f0065", 
       "type": "events" 
      } 
     } 
    }, 
    "type": "bookings", 
    "attributes": { 
     "created-at": { 
      "$date": "2016-02-13T04:48:13.489Z" 
     }, 
     "gender": "null", 
     "hostel": "null", 
     "phone-number": "918918918118", 
     "observation": "obs", 
     "name": "Marcelo", 
     "locale": "es", 
     "email": "[email protected]", 
     "participants": 10, 
     "value": 0, 
     "is-active": false, 
     "vip": [] 
    }, 
    "__v": 0 
} 

Wie Sie sehen können, ist die Beziehung mit der Buchung zu arbeiten.

Jetzt brauche ich das Gegenteil, ich meine .. aktualisieren Sie die Veranstaltung mit der Buchung innerhalb .. aber ich kann nicht, ich kann es einfach nicht herausfinden, wie! Ich stecke mindestens drei Wochen lang darauf.

Ich habe bereits mehrere Dinge ausprobiert, einschließlich der Verwendung der eingebetteten Option, manuell aktualisieren, aber nichts funktioniert.

Ich schätze die Hilfe!

+0

Sie müssen eine Rückruffunktion oder Versprechen verwenden. Ich empfehle Ihnen, diese Seite zu lesen :) https://strongloop.com/strongblog/promises-in-node-js-with-q-a-alternative-to-callbacks/ – phenxd

+0

Warum ist Javascript in dieser Frage getaggt, meinst du? Die Lösung kann in Javascript erreicht werden? –

+0

offensichtlich, ich benutze node.js. –

Antwort

0

Vielleicht verstehe ich die Frage falsch, aber ist es wichtig, die Veranstaltung bei allen Buchungen zu speichern?

Ich meine normalerweise für eine Eins-zu-viele Beziehung wie diese, die Buchungen werden eine eventId haben, die auf das Ereignis verweist, mit dem sie verwandt sind, aber das Ereignis enthält keinen Verweis auf die Buchungen. Das Speichern von Änderungen an einem Ereignis sollte automatisch in allen Buchungen widergespiegelt werden, die auf dieses Ereignis verweisen.

Verwandte Themen