Boolean değerini ekspres ve firavunlarla kaydetmenin kolay bir yolunu bulamıyorum. Bu şemayı var:Mongol kullanarak bir onay kutusundan boolean değeri nasıl kaydedilir ve ifade edilir?
var ClientSchema = new Schema({
name: {type: String, required: true, trim: true},
active: {type: Boolean }
});
var Client = mongoose.mode('Client', ClientSchema);
Bu benim kontrolörleri
exports.new = function(req, res) {
var client = new Client();
res.render('clients/new', { item: client });
};
exports.create = function(req, res) {
var client = new Client(req.body);
client.save(function(err, doc) {
if (err) {
res.render('clients/new', { item: client });
}
....
});
};
Ve bu benim bakış
form(method='post', action='/clients', enctype='application/x-www-form-urlencoded')
input(type='text', name='name', value=item.name)
input(type='checkbox', name='active', value=item.active)
Gelincik req.body üzerinde params'ı haritasına kurma özelliğine sahiptir. Satır var client = new Client (req.body) satırında, istemci formdan geçirilen doğru değere sahip req.body'den oluşturulan özellik adına sahip olur, ancak özellik etkin onay kutusu durumunu yansıtmaz.
ben var istemcisi = new İstemci (req.body) sonra bu satırı ekleyerek bu sorunu çözebilir olduğunu biliyorum ama benim formları eklediğiniz her onay kutusu için bunu yapmak gerekir:
client.active = req.body.active == undefined ? false : true;
Soru düzenlenmiş
Raylardaki yakut üzerinde bu numarayı yapmak zorunda değilim. Her onay kutusu için bir önceki satırı eklemeden onay kutularını nasıl kullanabilirim? Bu, onay kutularının değerlerini kaydetmenin tek yolu mı yoksa herhangi bir alternatif var mı? Ben şema bu şekilde
ben onay işaretini kaldırın eğer aktif doğru olacak kadar aktif, varsayılan olarak doğru olduğunuvar ClientSchema = new Schema({
name: {type: String, required: true, trim: true},
active: {type: Boolean, default: true }
});
Not tanımlanır başka durum var
Düzenleme, yanlış değil. raylarda
Sorunun ne olduğundan emin değilim - sadece "client.active ..." satırını başlatmak istemiyorsunuz? – UpTheCreek
Raylardaki yakutlar üzerinde bu numarayı yapmama gerek yok. Ben onay kutularını kullanarak express.js ve Mongoose en iyi uygulama nedir bilmek istiyorum. Sorumu düzenledim. – Camilo
Raylar üzerinde yakut ile karşılaştırıldığında, express.js çok düşük bir çerçevedir. RoR'un bu ekspresinin sizin için yapmayacağı pek çok şey olacak. Bu işlevi sizin için ekleyeceğiniz bir kütüphane ararken daha fazla şansınız olabilir (https://npmjs.org/ adresini deneyin).Ya da tam özellikli bir MVC stili web uygulaması çerçevesine (belki de eksprese dayanarak) bakmaya değer olabilir. Böyle bir seçenek bileşik.js (http://compoundjs.com/) – UpTheCreek