0

次のパッケージuserProfileを使用して、追加情報を添付して作成しようとしています。Meteor.users

  • aldeed:simple-schema
  • aldeed:Collection2
  • aldeed:AutoForm

更新フォームが生成され、登録された電子メール アドレスが入力されますが、データベースに何かを更新するための送信ボタンを取得できません。私のコードは以下です。

道:collections/UserProfile.js

Schema = {};

Schema.UserProfile = new SimpleSchema({
  firstName: {
    type: String,
    optional: true
  },
  lastName: {
    type: String,
    optional: true
  },
  birthday: {
    type: Date,
    optional: true
  },
  gender: {
    type: String,
    allowedValues: ['Male', 'Female'],
    optional: true
  }
});

Schema.User = new SimpleSchema({
  emails: {
    type: Array,
    optional: true
  },
  "emails.$": {
    type: Object
  },
  "emails.$.address": {
    type: String,
    regEx: SimpleSchema.RegEx.Email
  },
  "emails.$.verified": {
    type: Boolean
  },
  createdAt: {
    type: Date,
    autoValue: function() {
      return new Date()
    },
    autoform: {
      type: "hidden"
    }
  },
  profile: {
    type: Schema.UserProfile,
    optional: true
  },
  services: {
    type: Object,
    optional: true,
    blackbox: true,
    autoform: {
      type: "hidden"
    }
  },
});

Meteor.users.allow({
  update: function(userId, doc) {
    return !!userId;
  }
});

Meteor.users.attachSchema(Schema.User);

道:client/UserProfile.js

Template.UserProfile.helpers({
  user: function(){
    return Meteor.user();
  },
  userSchema: function () {
    return Schema.User;
  }
});

道:client/UserProfile.html

{{> quickForm collection="Meteor.users" doc=user id="user-profile-form" type="update"}}

道:server/publish.js

Meteor.publish('allUsers', function () {
  return Meteor.users.find();
});

なぜこれが起こっているのですか、どうすれば修正できますか?

4

1 に答える 1