次のようなユーザー プロファイル スキーマがあります。
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
});
ユーザーが実際に登録すると、他のデータを入力するためのフォームが表示されます。フォーム送信は、プロファイル オブジェクトを更新しようとするメソッドを呼び出します。