Я использую Rails 4, Ember 1.2.0 и Ember Data 1.0.0-beta.3 и DS.ActiveModelSerializer.
У меня возникли проблемы с сохранением новой записи с отношением "имеет много". Две записи модели должны быть созданы, но только одним запросом POST.
У меня есть 2 модели, которые выглядят так:
Lingohub.SupportCase = DS.Model.extend({ subject: DS.attr('string'), status: DS.attr('string'), created_at: DS.attr('date'), supportCaseMessages: DS.hasMany('supportCaseMessage') }); Lingohub.SupportCaseMessage = DS.Model.extend({ supportCase: DS.belongsTo('supportCase'), text: DS.attr('string'), created_at: DS.attr('date') });
Мой НОВЫЙ маршрут создает обращение в службу поддержки и массаж обращения в службу поддержки:
Lingohub.SupportCasesNewRoute = Ember.Route.extend({ model: function() { var support_case = this.store.createRecord('supportCase'); support_case.get('supportCaseMessages').createRecord(); return support_case; } });
Моя новая форма выглядит так: (я не знаю, можно ли проще связать дочерний атрибут?)
<form {{action 'create' this on="submit"}} id="new_support_case">
{{input value=subject}}
{{!-- {{supportCaseMessages.0.text}} --}}
{{#each supportCaseMessages}}
{{textarea value=text}}
{{/each}}
<input type="submit">
</form>
действие «создать» в контроллере:
Lingohub.SupportCasesNewController = Ember.ObjectController.extend({
actions: {
create: function(supportCase) {
var message = supportCase.get('supportCaseMessages.content')[0];
console.log(message.get('text'))
supportCase.save();
}
}
});
Запрос POST к серверу отправляет только «обращение в службу поддержки»!
{"support_case"=>{"subject"=>"aaaaaa", "status"=>nil, "created_at"=>nil}}
Как я могу отправить дополнительную запись «сообщение о запросе в службу поддержки» и отношения?