Ошибка при попытке обновить документ с помощью автоформы со схемой в Meteor

Сообщение об ошибке:

«Неперехваченная ошибка: после фильтрации ключей, не входящих в схему, ваш модификатор теперь пуст»

Использование автоформы с collection2 и простой схемой в Meteor. Схема:

Injuries = new Mongo.Collection('injuries');

Rehab = new SimpleSchema({
  exercise: {
    type: String,
    label: "Rehab Exercise"
  },
  sets: {
    type: Number,
    label: "Sets"
  },
  duration: {
    type: Number,
    label: "Set Duration (in Minutes)"
  },
  date: {
    type: String,
    label: "Date of Rehab Exercise"
  },
  rehabnotes: {
    type: String,
    label: "Notes: i.e. 70% Intensity During Sprints",
    max: 200
  },
  injuryid:{
    type: String,
  }
});

Injuries.attachSchema(new SimpleSchema({
  player: {
    type: String,
    label: "Player",
    max: 50
  },
  injury: {
    type: String,
    label: "Injury"
  },
  notes: {
    type: String,
    label: "Notes",
    max: 200
  },
  injurydate: {
    type: Date,
    label: "Date of Injury",
  },
  rehab: {
    type: [Rehab],
    optional: true
  }
}));

И код формы в шаблоне:

 {{#autoForm collection="Injuries" schema="Rehab" id="insertRehabForm" type="update"}}
          <fieldset>

                {{> afQuickField name='exercise' options=options}}
                {{> afQuickField name='sets'}}
                {{> afQuickField name='duration'}}
                {{> afQuickField name='date'}}
                {{> afQuickField name='rehabnotes' rows=6}}

          </fieldset>
           <button type="submit" class="btn btn-primary">Insert</button>
                {{/autoForm}}

Я могу вставлять документы с помощью автоформы на главной странице, используя эту пользовательскую форму на отдельной странице документа, я получаю сообщение об ошибке при отправке.

У меня есть одна настройка хука для сбора перед отправкой, но похоже, что это просто ошибка схемы, возможно, массив Rehab, который я настроил в исходной схеме Injuries, все портит? Поиски, которые я сделал для этого, касались параметра «Тип» в схеме, не соответствующего ожидаемому, но я проверил их здесь, и они выглядят хорошо. Предложения?


person James Mundia    schedule 01.03.2016    source источник


Ответы (1)


Согласно документам AutoForm: атрибут schema является обязательным, если атрибут collection не установлен. , однако, даже если установлено значение collection, AutoForm по-прежнему будет использовать предоставленный атрибут schema для создания (применимо только к QuickForm) и проверки формы (применимо как к AutoForm, так и к QuickForm) .

Что произошло в вашем случае, так это то, что, поскольку предоставлены оба атрибута (schema и collection), AutoForm сначала проверяет поля формы на соответствие схеме Rehab и, когда это удается, он пытается вставить значения этих полей ( упражнения, сеты, продолжительность, дата, заметки о реабилитации) в вашу коллекцию Injuries, которая не имеет этих ключей в собственной схеме (в ней есть только игрок, травма, заметки, дата травмы и реабилитация).

Судя по вашим требованиям, установка типа автоформы на update-pushArray является наилучшим решением. Проверьте документы и пример использования.

person Leonardy Kristianto    schedule 02.03.2016