我有一个运行Rails API后端的Ember应用程序,我在两者之间遇到了一个奇怪的问题。我希望存储在API中的Message模型数据将堆栈发送到Ember。我已经在数据库中添加了一些消息来构建以匹配此迁移:
class CreateMessages < ActiveRecord::Migration[5.0]
def change
create_table :messages do |t|
t.text :body
t.boolean :flagged
t.timestamps
end
end
end
加上一个看起来像这样的序列化器:
class MessageSerializer < ActiveModel::Serializer
attributes :id, :body, :flagged, :created_at, :updated_at
end
在Ember方面,我的模型设置如下:
import DS from 'ember-data';
export default DS.Model.extend({
body: DS.attr('string'),
flagged: DS.attr('boolean'),
createdAt: DS.attr('date'),
updatedAt: DS.attr('date')
});
Ember显示标记和肢体参数都很好,但它只返回undefined
和createdAt
的{{1}}。通过检查Rails控制台,对第一个Message的快速测试返回如下内容:
updatedAt
我已经在GitHub上看到了一些或多或少完全做到这一点的引用,我无法弄清楚事情的发展方向。任何帮助表示赞赏!
答案 0 :(得分:1)
如果其他人遇到此问题,解决方案看似简单。我所要做的就是添加:
ember g serializer message
然后用以下内容填充该文件:
import DS from 'ember-data';
export default DS.JSONAPISerializer.extend({
keyForAttribute: function(key) {
return Ember.String.decamelize(key);
}
});
够简单!出于某种原因,将其放入application.js
不起作用,但这完成了工作。