我在ember中有一个现有模型,我想添加一个新列。我已经能够看到如何从CLI生成此内容,因此已手动将其添加到我的component.js
和models/post.js
。我已将该字段添加到我的表单中,并将把手添加到我的视图中。检查Firebase我可以确认我没有更新该字段。
在Rails中,我只需运行rails generate migration add_snippet_to_posts snippet:string
,但在Ember中执行此操作只会创建一个新模型。
模型/ post.js
import DS from 'ember-data';
export default DS.Model.extend({
title: DS.attr('string'),
author: DS.attr('string'),
createdDate: DS.attr('date'),
text: DS.attr('string'),
snippet: DS.attr('string') #<=manually added this.
});
component.js
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
createPost: function (model) {
this.sendAction('createPost', model);
// Clear each input field
this.set('newPost.title', null);
this.set('newPost.author', null);
this.set('newPost.text', null);
this.set('newPost.snippet', null); #<= manually added this
}
}
});
我该怎么做?
解决
还需要更新 routes / index.js :
import Ember from 'ember';
export default Ember.Route.extend({
model: function () {
return this.store.findAll('post');
},
actions: {
createPost: function (model) {
let post = this.store.createRecord('post', {
title: model.title,
text: model.text,
author: model.author,
snippet: model.snippet, # <= add this too
createdDate: new Date()
});
post.save();
}
}
});
答案 0 :(得分:0)
官方的答案是,您不能只将使用ember-CLI 添加到已创建的模型中 - 并且同时,更新所有内容它可能会影响整个应用程序。您必须手动编写属性以及它们在路由/组件/模板等中的使用方式。
听起来很棒Rails可以知道所有这些东西。 :)