2017-05-19 40 views
2

哇這很難找到。在現有的餘燼模型中添加列

我有一個現有的模型在燼,我想添加一個新的列。我一直無法看到如何從CLI生成這個,所以手動將它添加到我的component.jsmodels/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 
    } 
    } 
}); 

我該怎麼辦呢?

解決

需要更新路線/ 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

在這個問題中,「列」這個詞讓我感到困惑 - 但也許這就是討論模型屬性的sql或rails方法。 – sheriffderek

回答

0

,官方的回答是,你不能只是與Ember-CLI添加屬性到模型已經創建 - 並且在同一時間,更新它可能影響整個應用程序的一切。您必須手動編寫屬性以及它們在路由/組件/模板等中的用法。

這聽起來很棒,Rails可以知道所有這些東西。 :)