11

私は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]

スキーマで必要なため、発生していることは知っていますが、この情報は既に取得しています。どうすればそれを要求しないのですか? または、フォームごとに検証を設定しますか?

4

4 に答える 4