我正在使用collection2,我试图让它处理验证是一种特定的方式。我有一个看起来像这样的配置文件模式:
Schema.UserProfile = new SimpleSchema({
name: {
type: String,
optional: false
}
location: {
type: String,
optional: true
}
gender: {
type: String,
optional: false
}
});
Schema.User = new SimpleSchema({
username: {
type: String,
optional: true
},
emails: {
type: Array,
optional: true
},
"emails.$": {
type: Object
},
"emails.$.address": {
type: String,
regEx: SimpleSchema.RegEx.Email
},
"emails.$.verified": {
type: Boolean
},
createdAt: {
type: Date
},
profile: {
type: Schema.UserProfile,
optional: true
},
services: {
type: Object,
optional: true,
blackbox: true
},
roles: {
type: [String],
optional: true
},
heartbeat: {
type: Date,
optional: true
}
});
Meteor.users.attachSchema(Schema.User);
现在,在我的注册表单上,我要求用户选择他们的性别,然后在他们登录后,用户会看到一个单独的表单,询问他们的姓名和位置。这是问题所在:
注册表有效,一切都在保存。当他们尝试使用位置和名称保存内部表单时,尽管我收到错误消息:
Error invoking Method 'updateProfile': Gender is required [400]
我知道它正在发生,因为它在架构中是必需的,但我已经获得了这些信息。我怎么不需要那个?或者我是否为每个表单设置验证?