Meine Segel viele bis viele Verbände haben aufgehört, Änderungen zu speichern, das heißt, wenn ich eines der Elemente in meiner Checkbox-Liste abwählen, oder wählen Sie ein neues, die Änderungen werden nicht gespeichert (bevölkert zur Join-Tabelle).Segel viele bis viele Verbände nicht speichern
Früher hat es funktioniert, obwohl ich nicht sicher bin, wie lange es kaputt ist.
Alle anderen Felder auf der Seite werden korrekt gespeichert.
Also ich weiß, dass die Mechanik der meisten davon korrekt ist, nur die vielen zu vielen Verknüpfungen, dh die Liste der aktiven Datensätze in der Join-Tabelle zu aktualisieren.
Irgendwelche Hinweise darauf, was ich bei meinem Speichern falsch machen kann?
Ich habe folgende Modelle:
/**
* User.js
*/
module.exports = {
attributes: {
projects: {
collection: 'project',
via: 'users'
},
}
/**
* Project.js
*/
module.exports = {
attributes: {
users: {
collection: 'user',
via: 'projects',
dominant: true
},
}
In meiner Form I wie eine Checkbox-Liste zurückzukehre so
{ projectname: 'AS Story Database',
userlist: [ '10', '3', '1' ], <-- this line is the many to many line from the check boxs
projecttype: 'Development',
companyid: '1',
startdate: 'Sat Jan 01 2011 00:00:00 GMT+1100 (AUS Eastern Daylight Time)',
enddate: '' }
}
ich das Ergebnis
gesetztProject.findOne({'id':id})
.populate('users') <--------- heres the populate I added but didnt seem to have effect
.exec(function(err,project){
versuchte bevöl Dies ist der Speicherdialog in meinem Segelcontroller
var a=req.param('project',null);
console.log(a); <-- note this is where the json above is output
project.projecttype= a.projecttype,
project.projectname= a.projectname,
project.companyid= a.companyid,
project.users= a.userlist, <-- this is the many to many association that used to work
project.startdate = a.startdate,
project.enddate = a.enddate
project.save(function(err,updated){ <-- here is the save function
if (err) {
req.session.flash = {'err':err};
sails.controllers.project.edit(req,res);
}else{
req.session.flash = {};
res.redirect('project/index');
}
});
Sie Array zuweisen zu 'project.users' Variable anstelle von [' .ADD() ' ] (http://sailsjs.com/documentation/reference/waterline-orm/populated-values/add)/['.remove()'] (http://sailsjs.com/documentation/reference/waterline-orm/) bevölkerte Werte/entfernen). Hat es jemals so funktioniert? – Sangharsh
Ja, tat es! Laut den Dokumenten ist dies die Art und Weise, wie es funktionieren soll. Obwohl ich zu dem Schluss komme, muss ich selbst einen tiefen Update-Mechanismus schreiben. –
Können Sie bitte einen Link zu doc bereitstellen, der sagt, dass 'project.users' direkt einem Array zugewiesen werden kann? – Sangharsh