1

次のようなユーザー プロファイル スキーマがあります。

Schema.UserProfile = new SimpleSchema({
    name: {
        type: String,
        optional: false
    },
    gender: {
        type: String,
        optional: false,
        allowedValues: ['Male', 'Female']
    },
    location: {
        type: String,
        optional: false
    },
    age: {
        type: Number,
        optional: false
    }
}

私の登録フォームでは、ユーザーが性別を選択する必要があります。登録が完了すると、名前、場所、年齢などの残りのデータを入力する別のフォームがユーザーに表示されます。

問題は次のとおりです。ユーザーが登録しようとすると、次のエラーが表示されますName is required。ユーザーは、登録するまで自分の名前を入力することは想定されていません。

実際に特定のフォームに保存されているデータのみを検証するための適切なアプローチは何ですか?

編集

ここに私の登録スクリプトがあります:

var data = {};
var profile = {};
data.email = $('#email').val();
data.password = $('#password').val();
profile.gender = $('#gender').val();
data.profile = profile;

Accounts.createUser(data, function (error) {
   // do
   // ERROR: Name is required
});

ユーザーが実際に登録すると、他のデータを入力するためのフォームが表示されます。フォーム送信は、プロファイル オブジェクトを更新しようとするメソッドを呼び出します。

4

2 に答える 2